Quick Start
Deploy Strawly in approximately 5 minutes.
1. Clone the deployment repository
git clone https://codeberg.org/Strawly/deployment.git
cd deployment
2. Install script dependencies
npm install
3. Configure your modules
Open strawly-deployment.yml and set which modules you want enabled:
modules:
optimizations-azure:
enabled: true # set to false to skip this module
See Module Management for the full configuration reference.
4. Generate the Docker Compose file
npm run generate-compose
This reads strawly-deployment.yml and produces docker-compose.generated.yml.
5. Set up your environment file
cp .env.example .env
Open .env and fill in the required values. At minimum:
POSTGRES_PASSWORD=<strong-password>
JWT_SECRET=<48-byte-hex>
CREDENTIALS_ENCRYPTION_KEY=<32-byte-hex>
CODEBERG_USERNAME=strawly
Use the secrets script to generate the cryptographic values:
./scripts/generate-secrets.sh >> .env
If you enabled the Azure module, also add:
AZURE_TENANT_ID=<your-tenant-id>
AZURE_CLIENT_ID=<your-client-id>
AZURE_CLIENT_SECRET=<your-client-secret>
AZURE_SUBSCRIPTION_ID=<your-subscription-id>
See Environment Variables for the full reference.
6. Pull images and deploy
docker compose -f docker-compose.generated.yml pull
docker compose -f docker-compose.generated.yml up -d
Services start in this order automatically:
- PostgreSQL
- Migrations (applies schema, runs once)
- Seeder (seeds initial data, runs once)
- Backend
- Modules (parallel)
- Frontend
7. Verify health
npm run health-check
Or check manually:
curl http://localhost:3001/health # Backend
curl http://localhost:3000/ # Frontend
curl http://localhost:3002/health # Azure module (if enabled)
8. Log in
Open http://localhost:3000 in your browser.
Default credentials:
- Email:
admin@strawly.app - Password:
admin123
Change the default password immediately
The default password is publicly known. See First Login for instructions on changing it before doing anything else.