Site ↗
Documentation sections
Operations · 0.8.1

Dev-local: local development

Run the backend and interface on your computer, and PostgreSQL in Docker.

On this page

Dev-local is for code development. The backend and interface run on your computer, and PostgreSQL in Docker. Run all commands below from the generated project root.

1. Prepare the project

Install Go, Node.js/npm, Make, and Docker. Start Docker. In Generator UI, enable Docker in Deployment, save settings, and run Generate.

2. Start the application

make dev

The command prepares .env, starts PostgreSQL, applies migrations, and prompts you to create the first superadministrator. Enter your own password: no preset password exists, and input is hidden. Backend and Vite then start.

After stage=runtime, open the admin interface at http://127.0.0.1:5173. The default API address is http://127.0.0.1:8081. If addresses were changed, use the values printed by the command.

Keep the terminal open: processes run and print logs there.

3. Make changes

Edit content in the admin interface — this needs no generation or build. Change fields, relationships, and access rules in Generator UI, then run Generate. Develop your own code in custom zones alongside model changes.

Restart the backend after changing Go code. Apply new migrations through make migrate or the next make dev startup.

Command When needed
make up Start PostgreSQL only
make migrate Apply migrations to the dev database
make bootstrap-superadmin Create the first administrator if none exists
make admin-install Install interface dependencies
make build Build backend and interface without starting the environment
make down Stop dev containers while preserving data

Database connectivity is configured in .env and process variables. DATABASE_URL must point to your dev database.

4. Stop the application

Press Ctrl+C in the make dev terminal. The command terminates backend and interface and stops dev containers. The database is preserved.

Running make down in another terminal stops only containers. Separately started Go/Vite processes must be stopped in their own terminals.

Optional: startup through deploy/control

If deployment file generation is enabled, use the same controller as other environments. It calls ordinary make dev.

Copy the prepared example once:

mkdir -p deploy/environments
cp deploy/generated/examples/dev-local.json deploy/environments/dev.json

Open deploy/environments/dev.json. Keep environment: dev, preset: dev-local, and your project. Replace /absolute/project in root with the absolute project path; update backup.root too. This is a settings file you edit yourself. For S3, fill in your storage settings.

bash ./deploy/control check --env dev
bash ./deploy/control up --env dev

In another terminal:

bash ./deploy/control status --env dev
bash ./deploy/control logs --env dev --service postgres
bash ./deploy/control down --env dev

Dev-local has no --json, and logs shows PostgreSQL only. Backend and interface logs remain in the startup terminal.

For all components in Docker, see Prod-local. It has a separate database: dev records and images do not appear there automatically.