Skip to content

philtr/frst

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

25 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

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

Copy the example env file and populate it with real values:

cp secrets.env.example secrets.env

Then reference it in your service definitions like so:

env_file:
  - ../../secrets.env

🧠 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

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages