Skip to main content
This guide covers the complete installation process for POS Kasir, including prerequisites, setup options, and verification steps.

System Requirements

Backend Requirements

  • Go: Version 1.22 or higher
  • PostgreSQL: 12 or higher
  • golang-migrate: For database migrations
  • sqlc: For type-safe SQL code generation (development only)

Frontend Requirements

  • Bun: Version 1.0 or higher
  • Node.js: Compatible with Bun runtime

Infrastructure

  • Docker: 20.10 or higher
  • Docker Compose: v2.0 or higher

Installation Methods

Makefile Commands

POS Kasir includes a Makefile for common operations:
CommandDescription
make migrate-upApply all pending migrations
make migrate-downRollback all migrations
make migrate-down-oneRollback last migration
make migrate-versionShow current migration version
make migrate-create name=<name>Create new migration file
make seedRun database seeders
make sqlc-generateGenerate sqlc code
make swagGenerate Swagger documentation
make docker-beBuild and start backend Docker container
make docker-be-downStop backend Docker container

Verification

After installation, verify everything is working:
curl http://localhost:8080/api/v1/health
Or visit the Swagger UI:
http://localhost:8080/swagger/index.html
Open your browser and navigate to:
http://localhost:3000
You should see the login page.
Try logging in with a seeded account:
make migrate-version
This should display the current migration version without errors.

Troubleshooting

If you encounter issues during installation, check the following:

Common Issues

If go mod download fails, ensure you have proper internet connectivity and Go is properly configured:
go env GOPROXY
You may need to configure a proxy:
go env -w GOPROXY=https://proxy.golang.org,direct
If migrations fail with “dirty” state:
# Check current version
make migrate-version

# Force to specific version
make migrate-force version=1

# Then try again
make migrate-up
If ports 3000 or 8080 are already in use:
# Find process using port
lsof -i :8080

# Kill process or change port in .env
APP_PORT=8081
Clear Docker cache and rebuild:
docker-compose down
docker system prune -a
docker-compose up -d --build

Next Steps

Configuration

Configure environment variables, database, and integrations

First Steps

Learn how to use POS Kasir for the first time

Build docs developers (and LLMs) love