Basic demo setup for farmOS
  • Shell 66.6%
  • Dockerfile 33.4%
Find a file
Lance Edgar 5a2600d7ec add sample data module, installed on startup
thanks to @symbioquine for the basic demo data set!

https://github.com/symbioquine/farmOS_asset_link/tree/development/docker/farmos_asset_link_test_default_content

that data was imported, modified slightly (un-archive Dolly the
sheep), then re-exported to obtain the actual data committed here.

i decided not to document the export process here since that is fairly
well documented upstream:

- https://www.drupal.org/project/default_content
- https://git.drupalcode.org/project/default_content

but the punch line is, `drush dcer` was the command i used.
2026-10-26 12:06:11 -05:00
modules/farmosdemo_default_content add sample data module, installed on startup 2026-10-26 12:06:11 -05:00
.env add sample data module, installed on startup 2026-10-26 12:06:11 -05:00
.gitignore let .env file control more of the container config 2026-10-25 13:27:56 -05:00
composer.json add sample data module, installed on startup 2026-10-26 12:06:11 -05:00
composer.lock add sample data module, installed on startup 2026-10-26 12:06:11 -05:00
demo-entrypoint.sh add sample data module, installed on startup 2026-10-26 12:06:11 -05:00
destroy.sh change how the startup script works, to show drush output 2026-10-25 19:18:51 -05:00
docker-compose.yml add sample data module, installed on startup 2026-10-26 12:06:11 -05:00
Dockerfile add sample data module, installed on startup 2026-10-26 12:06:11 -05:00
README.md add sample data module, installed on startup 2026-10-26 12:06:11 -05:00
start.sh change how the startup script works, to show drush output 2026-10-25 19:18:51 -05:00
upgrade.sh change how the startup script works, to show drush output 2026-10-25 19:18:51 -05:00

farmOS Demo

This is a basic setup for a "demo" farmOS instance. It includes a few sample data records as a starting point.

This is intended to:

  • be useful as-is for running a local demo
  • serve as an example for custom farmOS build/deploy

Requirements

You must have Docker Compose installed for this to work.

Usage

Clone the repo and run the start.sh script:

git clone https://forgejo.wuttaproject.org/lance/farmos-demo.git
cd farmos-demo
./start.sh

Then browse to http://localhost:7277

The following user accounts are setup by default, with password set to letmein for each:

  • admin - UID 1
  • alice - farm manager
  • bob - farm worker
  • charlie - farm viewer

Teardown

There is also a destroy.sh script which will completely remove the docker container, custom image, db and site files:

./destroy.sh

farmOS Version

I intend to keep this repo updated with the most recent stable farmOS version. See the .env file to confirm.

Upgrading

As this is intended mostly as an example / local demo, the reader may have no need to "upgrade" per se.

But I intend to run this demo online perpetually so here is the upgrade procedure for that.

(TODO: no upgrade has been performed yet, this may need tweaks?)

Bump Version

Must update the farmOS version strings in 3 files, in repo:

  • composer.json
  • .env
  • Dockerfile

Then update composer dependencies per new version:

composer update --no-dev
composer update --no-dev

Commit the changes; include link to farmOS release notes. Push to central repo.

Upgrade Instance

On the server, first shut down running containers:

cd /srv/farmos-demo
docker compose down

Then pull latest from repo to get new version:

git pull

Then run the upgrade.sh script:

./upgrade.sh

Visit the Status Report page to confirm new version.