Skip to content
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
90 lines (64 sloc) 3.12 KB

TurnKey Core source code walkthrough

TurnKey Core is a good place to start, as it's source code is minimal, and mainly inherits from common.


root@tkldev products/core# cat Makefile
WEBMIN_FW_TCP_INCOMING = 22 12320 12321

include $(FAB_PATH)/common/mk/

The Makefile includes common/mk/, which defines default values for important variables (e.g., COMMON_CONF COMMON_OVERLAYS) and configures the default build process for TurnKey apps.

common/mk/ in turn includes fab/share/ which is the main Makefile. It's designed to be highly configurable and extensible.


root@tkldev products/core# cat plan/main
#include <turnkey/base>

Core's plan doesn't include packages of its own, but rather includes the packages defined in turnkey/base. The path is relative to FAB_PLAN_INCLUDE_PATH which is defined in the fab/share/


The overlay for Core is minimal:

root@tkldev products/core# find overlay/

In addition Core inherits common overlays through the common/mk/ COMMON_OVERLAYS configuration which pulls in common/overlays/turnkey.d.


Core only has a dummy script in conf.d:

root@tkldev products/core# cat conf.d/main
#!/bin/sh -ex
echo "do nothing - core requires no post-package configuration commands"

In addition, like with the overlay configurations, Core inherits common configuration scripts through the mk/ COMMON_CONF configuration which pulls in common/conf/turnkey.d.

As described in the build process, common overlays and confs are applied before the product-specific overlay and conf.d.

changelog, readme and images

The changelog describes changes for each release, and the version specified is used in the product release package.

The readme and .art (logo and screenshots) are used to automatically generate the website page on the TurnKey Linux website. In the future it will be used to automatically generate listings for "unofficial" integrations developed by the community.

You can’t perform that action at this time.