A Docker-based deployment for the Scylla backend and frontend applications.
Follow these steps to set up and run Scylla using Docker:
Create a folder for Scylla-related repos:
mkdir scylla && cd scyllaClone Scylla repos:
git clone https://github.com/toadmaninteractive/scylla-backend
git clone https://github.com/toadmaninteractive/scylla-frontend
git clone https://github.com/toadmaninteractive/scylla-dockerOpen scylla-backend dir and run:
docker build -t scylla-backend:latest .Open scylla-frontend dir and run:
docker build -t scylla-frontend:latest --build-arg BUILD_ENV=production .docker network create scyllaOpen scylla-docker dir and create configuration files from examples:
cp .env.example .env
cp config.yaml.example config.yamlEdit the config.yaml file:
- Fill in your LDAP settings (LDAP server address and bind user CN / password)
Run these commands from the scylla-docker directory.
Start database:
docker compose up -d scylla-dbInitialize the database (once):
docker compose run \
--name scylla-migrator \
--user root \
--no-deps \
--rm \
--entrypoint "bash -c 'cd /migrations && ./graphile-migrate run --rootDatabase migrations/00-init.sql && ./graphile-migrate reset --erase'" \
scylla-backendMigrate the database (incremental):
docker compose run \
--name scylla-migrator \
--user root \
--no-deps \
--rm \
--entrypoint "bash -c 'cd /migrations && ./graphile-migrate migrate'" \
scylla-backendStop database:
docker compose down scylla-dbdocker compose up -dTo stop Scylla and related services (except Traefik) run this command from the scylla-docker directory:
docker compose downAfter completing the Quickstart guide, Scylla will be running in Docker containers. To access the web interface through a browser, you'll need to set up a reverse proxy.
We provide two recommended approaches:
Configure a local proxy server such as nginx to route traffic to the Scylla containers.
We provide a pre-configured Traefik setup for production deployments. Traefik automatically handles SSL termination, load balancing, and routing.
- Registered domain name pointing to your server
- SSL certificates (certificate chain and private key)
- Prepare SSL certificates
- Save your certificate chain as
cert_key_chain.crt - Save your private key as
private.key - Place both files in the traefik/certs directory
- Configure your domain
- Edit
traefik/conf/dynamic/scylla.yml - Replace
scylla.yourcompany.comwith your actual domain name
- Start Traefik
Run this command from the docker/traefik directory:
docker compose up -d- Stop Traefik
Run this command from the docker/traefik directory:
docker compose downAfter starting Traefik, access Scylla at https://your-domain.com (replace with your actual domain). The proxy automatically handles SSL encryption and redirects HTTP traffic to HTTPS.
- Ensure your firewall allows traffic on ports 80 (HTTP) and 443 (HTTPS)
- DNS records should point to your server's public IP address
- Certificate files must be in PEM format
- Traefik automatically monitors container changes and updates routing accordingly