Getting started
Get Graxeon running locally in under 5 minutes with Docker Compose. You'll have Studio, Explorer, and all supporting services up and ready.
Prerequisites
- Docker 24 or later
- Docker Compose v2 (included with Docker Desktop)
- Git
1. Clone the repository
git clone https://github.com/Unfoldata/graxeon.git
cd graxeon
2. Create your environment file
Copy the example env file and set a strong secret key. The defaults work for local development — change credentials before exposing to the internet.
cp .env.example .env
Open .env and set at minimum:
# Required — use a long random string
SECRET_KEY=change-me-to-something-random
# Admin account created on first boot
DEFAULT_ADMIN_EMAIL=you@example.com
DEFAULT_ADMIN_PASSWORD=change-me-on-first-login
Security note: Never use the default credentials in production.
Generate a strong
SECRET_KEY with openssl rand -hex 32.
3. Start the stack
docker compose up -d
This starts the following services:
- studio —
http://localhost:5056 - explorer —
http://localhost:5057 - postgres — user accounts, permissions, and metadata
- minio — file storage (S3-compatible)
Wait a few seconds for the database to initialise, then open Studio in your browser.
4. Create your first collection
- Open
http://localhost:5056and sign in with your admin credentials. - Click New collection and give it a name.
- Go to Schema and define a type — for example, Article with fields title (text), author (text), and published (date).
- Go to Items and click New item. Choose the Article type, fill in the fields, and write a body in the editor.
- Save. Your item is now stored as a
.kglfile.
5. Share via Explorer
- In Studio, open your collection and go to Access.
- Invite a user by email — or create a test user under Settings → Users first.
- Assign them a role: viewer, editor, or owner.
- That user can now open
http://localhost:5057and browse the collection in Explorer.
Configuration reference
Key environment variables in .env:
SECRET_KEY— Flask session secret. Required.DEFAULT_ADMIN_EMAIL/DEFAULT_ADMIN_PASSWORD— Seed admin user created on first boot.AUTH_ENABLED— Set tofalseto disable login (single-user local mode).GITHUB_CLIENT_ID/GITHUB_CLIENT_SECRET— Enable GitHub OAuth login.GOOGLE_CLIENT_ID/GOOGLE_CLIENT_SECRET— Enable Google OAuth login.STUDIO_STORAGE_BACKEND—s3(default, uses MinIO) orlocal.
Upgrading
git pull
docker compose pull
docker compose up -d
The database schema is migrated automatically on startup. KGL files stored in MinIO are forward-compatible — you will not lose data on upgrade.