Skip to content

Repository files navigation

🌲FRST: Forest Ranger's Stack Toolkit

FRST is a minimal framework for managing docker-compose stacks per host or tag. It’s designed for self-hosted setups with modular app definitions and machine-specific stack files.

πŸ”§ How It Works

Each app (like Home Assistant or Frigate) defines its own docker compose config inside apps/. A host-specific compose file (e.g., docker-compose.grove.yml) includes the relevant app services.

App volumes should live under volumes/APP_NAME/. For example, if a container needs /data, mount it like this in the app’s compose file:

volumes:
  - ../volumes/APP_NAME/data:/data

πŸš€ Usage

Make the script executable:

chmod +x frst

Start services

./frst start -s grove home-assistant frigate

Stop services

./frst stop -s grove home-assistant frigate

Restart services

./frst restart -s grove home-assistant frigate

Update images

./frst pull -s grove home-assistant frigate

Use system hostname as stack name

If no -s/--stack option is provided, FRST uses the system’s hostname:

./frst start
./frst stop
./frst restart
./frst pull

This runs:

sudo docker compose -f docker-compose.$(hostname).yml up -d

Arguments after the command are passed to docker compose as service names.

πŸ” Secrets

Put local-only secrets in an untracked compose override:

cp docker-compose.local.example.yml docker-compose.local.yml

Copy only the service blocks you need from the example into that local override, for example:

services:
  wallabag:
    environment:
      MYSQL_ROOT_PASSWORD: your-real-password

frst will automatically include docker-compose.local.yml and docker-compose.$(hostname).local.yml when present.

🧠 Philosophy

  • One file per app
  • One stack file per machine
  • One command to start or stop everything

About

🌲 docker compose configs for my homelab πŸ‘¨πŸ»β€πŸ”¬

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages