-
cp .env.example .env
-
docker compose up -d --build
-
docker logs kontas-app
Linux
sudo usermod -aG docker $USER
docker --version
docker compose version
Windows
cd $HOME\Documents\kontas-download-0.1.0
dir
macOS
cd ~/Documents/kontas-download-0.1.0
ls
Linux
cd ~
unzip ~/Downloads/kontas-download-0.1.0.zip
cd ~/kontas-download-0.1.0
sudo chown -R 1000:1000 web/prisma
ls
cp .env.example .env
Windows
$b = New-Object byte[] 32; [Security.Cryptography.RandomNumberGenerator]::Create().GetBytes($b); ($b | ForEach-Object { $_.ToString('x2') }) -join ''
notepad .env
macOS
openssl rand -hex 32
open -e .env
Linux
openssl rand -hex 32
nano .env
chmod 600 .env
SMTP_ENCRYPTION_KEY=
ADMIN_EMAIL=admin@kontas.local
ADMIN_PASSWORD=
docker compose up -d --build
docker ps
docker logs kontas-app
[bootstrap] New database created (base schema and the standard chart of accounts).
[bootstrap] Administrator created: admin@kontas.local
[bootstrap] One-time password (shown only now, change it after the first sign-in or reset it with scripts/set-password.cjs):
[bootstrap] (16 letters and digits)
docker exec kontas-app node -e "const D=require('better-sqlite3');new D('/app/prisma/dev.db',{readonly:true}).backup('/tmp/b.db').then(()=>console.log('ok'))"
docker cp kontas-app:/tmp/b.db ./kontas-backup.db
Windows
docker compose stop
Copy-Item -Recurse web\prisma "..\kontas-backup-$(Get-Date -Format yyyy-MM-dd)"
docker compose start
macOS
docker compose stop
cp -a web/prisma "../kontas-backup-$(date +%F)"
docker compose start
Linux
docker compose stop
sudo cp -a web/prisma "../kontas-backup-$(date +%F)"
docker compose start
-
docker compose down
-
Windows
cd $HOME\Documents
Copy-Item -Recurse -Force kontas-download-0.1.0\web\prisma\* kontas-download-NEW\web\prisma\
if (Test-Path kontas-download-0.1.0\.env) { Copy-Item kontas-download-0.1.0\.env kontas-download-NEW\ }
macOS
cd ~/Documents
cp -a kontas-download-0.1.0/web/prisma/. kontas-download-NEW/web/prisma/
[ -f kontas-download-0.1.0/.env ] && cp -a kontas-download-0.1.0/.env kontas-download-NEW/
Linux
cd ~
sudo cp -a kontas-download-0.1.0/web/prisma/. kontas-download-NEW/web/prisma/
[ -f kontas-download-0.1.0/.env ] && cp -a kontas-download-0.1.0/.env kontas-download-NEW/
-
cd kontas-download-NEW
docker compose up -d --build
| |
docker compose stop | |
docker compose start | |
docker compose restart | |
docker compose up -d | |
docker compose down | |
docker ps | |
docker logs kontas-app | |
docker logs -f kontas-app | |
docker exec -it kontas-app node scripts/set-password.cjs admin@kontas.local
docker exec -it kontas-app node scripts/set-password.cjs admin@kontas.local 'my-long-password-2026'
docker exec -it kontas-app node scripts/set-password.cjs admin@kontas.local --enable
-
docker compose down --rmi local
-
docker builder prune
-
ports:
- "127.0.0.1:8080:3000"
APP_ORIGIN=http://localhost:8080
Windows
netstat -ano | findstr :3200
macOS
lsof -nP -iTCP:3200 -sTCP:LISTEN
Linux
sudo ss -ltnp | grep 3200
-
sudo chown -R 1000:1000 web/prisma
docker compose restart
-
sudo fallocate -l 2G /swapfile && sudo chmod 600 /swapfile && sudo mkswap /swapfile && sudo swapon /swapfile
-
docker rm -f kontas-app