Skip to Content

Installing Fundamento by using Docker

Requirements

Quick start

  1. Clone the Fundamento standalone  repository:

    git clone https://github.com/Ikigai-Systems/fundamento-standalone.git cd fundamento-standalone
  2. (Optional) Edit env.standalone to customize the initial admin account. Default credentials are john@fundamento.it / secret!. You should change these if your instance will be publicly accessible.

  3. Start Fundamento:

    docker compose up
  4. Open http://localhost:3333  and log in.

Credentials are generated automatically on first boot — no manual setup needed.

Architecture

Fundamento runs as a set of Docker containers:

ServicePurpose
websiteMain web application (Rails)
jobsBackground job worker (GoodJob)
postgresqlDatabase (PostgreSQL 16)
redisCaching and real-time features

Configuration

Admin account (env.standalone)

VariableDefault
FUNDAMENTO_ORGANIZATIONFundamento
FUNDAMENTO_ADMIN_EMAILjohn@fundamento.it
FUNDAMENTO_ADMIN_FIRST_NAMEJohn
FUNDAMENTO_ADMIN_LAST_NAMEDoe
FUNDAMENTO_ADMIN_PASSWORDsecret!

Environment variables (.env)

Copy .env.example to .env to customize optional settings:

VariableDefaultDescription
RAILS_PORT3333Web server port
HTTP_HOSTlocalhost:3333Public hostname for links and emails
RAILS_LOG_LEVELinfoLog verbosity (debug/info/warn/error)
FUNDAMENTO_VERSIONlatestPin a specific image version

Updating

Pull the latest images and restart:

docker compose pull docker compose up -d

Database migrations run automatically on startup.

To pin a specific version, set FUNDAMENTO_VERSION in your .env file or specify the version directly in docker-compose.yml.

Email (SMTP)

By default, Fundamento does not send emails. To enable email delivery, create a credentials file with your SMTP settings:

docker compose run --rm website bin/rails credentials:edit -e standalone

This opens the Nano editor. Add an smtp block:

smtp: user_name: your_username password: your_password address: smtp.example.com port: 587 authentication: login

Press Ctrl-X, then Y to save and exit. Restart to apply:

docker compose restart website jobs

Troubleshooting

Port 3333 already in use

Set a different port in .env:

RAILS_PORT=3334 HTTP_HOST=localhost:3334

Viewing logs

docker compose logs -f # all services docker compose logs -f website # web application only

Resetting everything

To start fresh (this destroys all data):

docker compose down -v docker compose up

Got stuck?

Feel free to contact support if you got stuck or have any questions.

Last updated on