Getting Started

Docker Setup

Get Straktur running with one command

The fastest way to run Straktur. One command gives you everything.

Requirements

You need Docker installed on your machine. Choose one:

AppPlatformNotes
OrbStackmacOSRecommended - fast & lightweight
Docker DesktopmacOS, Windows, LinuxOfficial Docker app

Quick Start

# Clone the repository (use your purchased repo URL)
git clone <your-repo-url>
cd straktur

# Start everything
docker compose up

First run takes 2-5 minutes (downloading images, installing dependencies). After that, starts in ~30 seconds.

Once ready, open http://localhost:3000

EmailPassword
[email protected]testingpassword

That's it! You now have a fully working app.


What's Running

ServiceURLWhat is it?
Apphttp://localhost:3000Your Straktur application
Mailpithttp://localhost:8080Local email server - catches all emails sent by the app so you can preview them without sending real emails
MinIOhttp://localhost:9001Local S3-compatible file storage - handles file uploads (avatars, attachments) without needing AWS

MinIO credentials: minioadmin / minioadmin


Demo Data

To make your start easier, we've prepared demo data that shows you what a real app built with Straktur looks like.

Explore it to see how everything works together - navigation patterns, UI components, data tables, forms, file uploads, and all the features you get out of the box. It's the best way to understand Straktur before building your own features.

What's included:

  • 44 companies with logos and details
  • 70+ contacts linked to companies
  • Activities, relationships, and file attachments
  • All dictionary values (statuses, industries, regions)

Starting fresh

Want to start with an empty database instead? Set SEED_DEMO_DATA: "false" in docker-compose.yml and run:

docker compose down -v
docker compose up

Common Commands

Start the app

docker compose up

Starts everything and shows logs in your terminal. You'll see what's happening in real-time, but your terminal is busy. Press Ctrl+C to stop.

docker compose up -d

Starts in background - your terminal stays free. Use this when you don't need to watch logs.

View logs

docker compose logs -f app

Shows app logs in real-time. Useful when you started in background or need to debug why something isn't working.

Stop the app

docker compose down

Stops all containers. Your data (database, files) is preserved - next docker compose up will have everything as you left it.

Full reset

docker compose down -v
docker compose up

Warning: The -v flag deletes ALL data - database, uploaded files, everything. Use this only when you want to start completely fresh.


Using a Different Port

Port 3000 already in use? Change it:

APP_PORT=3001 docker compose up

Then open http://localhost:3001


Development vs Production

By default, Docker runs in development mode with hot reload and devtools.

Development (default)

docker compose up
  • Hot reload enabled
  • TanStack Query and Next.js devtools visible
  • Faster startup (no build step)

Production mode

APP_MODE=production docker compose up

Or set in .env:

APP_MODE=production

Production mode:

  • Builds the app first (npm run build)
  • Runs optimized next start instead of next dev
  • No devtools icons
  • Better performance, closer to real deployment

Use production mode to test performance or verify your build works before deploying.


Troubleshooting

Can't log in

Make sure you're using the correct credentials:

If it still doesn't work, the seed might have failed. Check logs and try resetting:

docker compose down -v
docker compose up

App shows errors or blank page

Check what's happening in the logs:

docker compose logs -f app

Look for error messages - they usually tell you what's wrong.

Code changes not visible

If your changes aren't showing up, restart the app container:

docker compose restart app

Database not responding

Check if PostgreSQL is running:

docker compose ps
docker compose logs db

Wait for "database system is ready to accept connections" message. If it's not starting, try a full reset:

docker compose down -v
docker compose up

Next Steps

On this page