# Getting Started ## Prerequisites - Docker and Docker Compose ## Running with Docker Compose ```bash docker compose up --build ``` Open [http://localhost:3000](http://localhost:3000). Default credentials: `admin` / `admin`. Data persists in the `sb_data` named volume. To reset everything: ```bash docker compose down -v ``` ## First Boot On first start, Armature will: 1. Run database migrations (SQLite by default in compose). 2. Create the admin user from `ARMATURE_ADMIN_USERNAME` / `ARMATURE_ADMIN_PASSWORD` env vars. 3. Auto-install the curated default package set (notes, chat-core, dashboard, workflow demos, etc.). No manual setup steps are required. ## Installing Additional Packages The Docker image ships with extra packages beyond the default set. To install them: - **Via Admin UI**: Go to `/admin` > Packages. Browse, enable, or install packages. - **Via environment variable**: Set `BUNDLED_PACKAGES` before starting: ```bash # Install all bundled packages BUNDLED_PACKAGES="*" docker compose up --build # Install specific extras BUNDLED_PACKAGES="notes,tasks,schedules" docker compose up --build ``` You can also upload `.pkg` archives through the Admin > Packages page. ## Key URLs | URL | Purpose | |-----|---------| | `/` | Redirects to your default surface | | `/admin` | Admin panel (users, packages, settings, teams) | | `/settings` | User settings (profile, preferences, default surface) | | `/welcome` | Welcome page (shown when no surfaces are installed) | | `/api/docs` | Interactive OpenAPI documentation | ## Key Environment Variables | Variable | Default | Description | |----------|---------|-------------| | `PORT` | `8080` | Backend API port | | `DB_DRIVER` | auto | `postgres` or `sqlite` | | `DATABASE_URL` | | PostgreSQL DSN or SQLite file path | | `JWT_SECRET` | `dev-secret-change-me` | **Change in production** | | `ENCRYPTION_KEY` | | AES-256 key for credential encryption | | `AUTH_MODE` | `builtin` | `builtin`, `mtls`, or `oidc` | | `STORAGE_BACKEND` | auto | `pvc` or `s3` | | `STORAGE_PATH` | `/data/storage` | PVC mount point | | `ARMATURE_ADMIN_USERNAME` | | Bootstrap admin username | | `ARMATURE_ADMIN_PASSWORD` | | Bootstrap admin password | | `BUNDLED_PACKAGES` | (empty) | `""` = curated defaults, `"*"` = all, or comma-separated IDs | | `SKIP_BUNDLED_PACKAGES` | `false` | Disable auto-install entirely | | `LOG_LEVEL` | `info` | `debug`, `info`, `warn`, `error` | | `LOG_FORMAT` | `text` | `text` or `json` | ## From Source ```bash git clone && cd armature cp server/.env.example server/.env # edit DB credentials cd server && go run . # Backend on http://localhost:8080 ``` ## Next Steps - [Extension Guide](EXTENSION-GUIDE.md) -- Author your own packages - [API Reference](API-REFERENCE.md) -- REST API overview - [Deployment](DEPLOYMENT.md) -- Production deployment - [Architecture](ARCHITECTURE.md) -- System design