Comprehensive Setup Documentation for Windows, macOS, and Linux
This guide provides step-by-step instructions for first-time users setting up SereniBase from scratch.
- Deployment Modes
- Minimum Requirements
- Clone Repository
- Backend Only Setup
- Full Application Setup
- Access URLs
- Verify Installation
- Day-2 Operations
- Troubleshooting
- Clean Reinstall
SereniBase supports two deployment configurations:
| Mode | Description | Use Case |
|---|---|---|
| Backend Only | Core REST API + PostgreSQL database | API development, microservice integration, lightweight testing |
| Full Application | Complete stack with UI, authentication, email, storage, and antivirus | Production deployments, full-stack development, demos |
| Service | Backend Only | Full Application |
|---|---|---|
| SereniBase REST API | ✓ | ✓ |
| PostgreSQL Database | ✓ | ✓ |
| JWT Authentication | ✗ | ✓ |
| Email Service | ✗ | ✓ |
| Storage Service | ✗ | ✓ |
| RustFS Object Storage | ✗ | ✓ |
| Antivirus (ClamAV) | ✗ | ✓ |
| Frontend UI | ✗ | ✓ |
| Requirement | Minimum | Recommended |
|---|---|---|
| Docker Desktop | Latest | Latest |
| RAM (available to Docker) | 4 GB | 8 GB+ |
| Free Disk Space | 10 GB | 20 GB+ |
| Git | Any | Latest |
| Make | Optional | Recommended |
docker --version
docker compose version
git --versionNote: If
docker composefails, install/enable the Docker Compose plugin first.
git clone https://github.com/aptlogica/sereni-base.git
cd sereni-baseFor API development and lightweight deployments without the full UI stack.
# Copy environment template
cp build/config/.env.example .env
# Start backend services
docker compose -f docker-compose.yaml up -d
# Verify services
docker compose -f docker-compose.yaml ps| Service | Port | Description |
|---|---|---|
| serenibase-rest | 8080 | REST API server |
| postgres | 5432 | PostgreSQL database |
# Start services
docker compose -f docker-compose.yaml up -d
# View logs
docker compose -f docker-compose.yaml logs -f
# Stop services (preserve data)
docker compose -f docker-compose.yaml down
# Stop and remove all data
docker compose -f docker-compose.yaml down -vFor complete deployments with all microservices and the frontend UI.
powershell -NoProfile -ExecutionPolicy Bypass -File .\build\scripts\setup.ps1chmod +x build/scripts/setup.sh build/scripts/setup-y.sh
./build/scripts/setup.shpowershell -NoProfile -ExecutionPolicy Bypass -File .\build\scripts\setup-y.ps1./build/scripts/setup-y.sh# Interactive setup
make setup
# Non-interactive with defaults
make setup-y| Service | URL | Description |
|---|---|---|
| Frontend | http://localhost:5050 |
Web application interface |
| Backend API | http://localhost:8080 |
REST API endpoint |
| Health Check | http://localhost:8080/api/v1/health |
API health status |
| RustFS Console | http://localhost:9001 |
Object storage administration |
| Service | URL | Description |
|---|---|---|
| Backend API | http://localhost:8080 |
REST API endpoint |
| Health Check | http://localhost:8080/api/v1/health |
API health status |
docker compose -f docker-compose.all.yaml psdocker compose -f docker-compose.yaml psExpected: All services should show Up status (some may display healthy after initialization).
docker compose -f docker-compose.all.yaml logs --tail=200 <service-name>| Action | Command |
|---|---|
| Start services | docker compose -f docker-compose.all.yaml up -d |
| Stop services | docker compose -f docker-compose.all.yaml down |
| View logs | docker compose -f docker-compose.all.yaml logs -f |
| Rebuild after changes | docker compose -f docker-compose.all.yaml up --build -d |
| Hard reset (delete data) | docker compose -f docker-compose.all.yaml down -v |
| Action | Command |
|---|---|
| Start services | docker compose -f docker-compose.yaml up -d |
| Stop services | docker compose -f docker-compose.yaml down |
| View logs | docker compose -f docker-compose.yaml logs -f |
| Rebuild after changes | docker compose -f docker-compose.yaml up --build -d |
| Hard reset (delete data) | docker compose -f docker-compose.yaml down -v |
| Action | Command |
|---|---|
| Start | make up |
| Stop | make down |
| Stop & remove data | make down-all |
| View logs | make logs |
| Service status | make ps |
| Detailed status | make status |
Cause:
- Old Docker parser does not support heredoc syntax used in some Dockerfiles.
Status in this repo:
- Fixed by using
services/base-ui/nginx.default.conf+COPYinservices/base-ui/Dockerfile.
What to do:
- Pull latest repo changes.
- Rebuild:
docker compose -f docker-compose.all.yaml build --no-cache base-ui docker compose -f docker-compose.all.yaml up -d
Common causes:
AUTH_JWT_SECRETchanged between runs.- Auth container not healthy.
- App is using stale token from old setup.
Fix:
- Check auth container:
docker compose -f docker-compose.all.yaml ps jwt-provider docker compose -f docker-compose.all.yaml logs --tail=200 jwt-provider
- Check
.envhas one stable value forAUTH_JWT_SECRET. - If you changed secret, stop containers and restart:
docker compose -f docker-compose.all.yaml down docker compose -f docker-compose.all.yaml up -d
- Clear browser local storage/session for base-ui and login again.
Common causes:
- Port conflicts (5050, 8080, 8081, 8082, 8083, 8084, 5432, 9000, 9001, 3310).
- Low Docker memory/CPU.
- Stale volumes or broken previous state.
Fix order:
- Check container states:
docker compose -f docker-compose.all.yaml ps
- Check logs for failing service:
docker compose -f docker-compose.all.yaml logs --tail=200 <service-name>
- Resolve port conflicts, then restart.
- If still broken:
docker compose -f docker-compose.all.yaml down -v docker compose -f docker-compose.all.yaml up --build -d
Cause:
- UTF-8 BOM in
.envcan break first variable parsing on some tools.
Status in this repo:
- Setup scripts now write
.envas UTF-8 without BOM.
If you already have a bad .env, regenerate:
Remove-Item .env -Force
powershell -NoProfile -ExecutionPolicy Bypass -File .\build\scripts\setup.ps1chmod +x build/scripts/*.shUse this when migrating between machines or resolving unknown state issues.
docker compose -f docker-compose.all.yaml down -v
docker system prune -f
git pull
make setupdocker compose -f docker-compose.yaml down -v
docker system prune -f
git pull
docker compose -f docker-compose.yaml up -d| File | Purpose |
|---|---|
build/scripts/setup.sh |
Interactive setup (Linux/macOS) |
build/scripts/setup.ps1 |
Interactive setup (Windows) |
build/scripts/setup-y.sh |
Auto setup (Linux/macOS) |
build/scripts/setup-y.ps1 |
Auto setup (Windows) |
docker-compose.yaml |
Backend only deployment |
docker-compose.all.yaml |
Full application deployment |
build/config/.env.example |
Environment template |
.env |
Active configuration (generated) |
- Setup Guide - Quick reference setup guide
- Interactive Setup - Detailed wizard documentation
- Environment Variables - Complete variable reference
- Quick Reference Card - Common configurations