Tier B — Docker / VPS

Run NeNe Corpus using Docker Compose. Recommended for developers and production VPS deployments.

Prerequisites

  • Docker 24+ and Docker Compose v2
  • Git
  • An Anthropic API key

1. Clone the repository

git clone https://github.com/hideyukiMORI/nene-corpus.git
cd nene-corpus

2. Configure environment

cp .env.example .env

Edit .env with your settings:

# Database
DB_HOST=db
DB_PORT=3306
DB_NAME=nene_corpus
DB_USER=nene
DB_PASS=changeme

# App
APP_URL=http://localhost:8080
APP_DEBUG=false

# Anthropic
ANTHROPIC_API_KEY=sk-ant-...

# Admin JWT secret (generate a random string)
LOCAL_JWT_SECRET=your-secret-here

# SMTP (optional — for email notifications and password reset)
SMTP_HOST=smtp.example.com
SMTP_PORT=587
SMTP_USER=you@example.com
SMTP_PASS=yourpassword
SMTP_FROM=noreply@example.com
SMTP_FROM_NAME=NeNe Corpus

3. Start the stack

docker compose up --build -d

This starts:

  • app — PHP 8.4 + Apache
  • db — MySQL 8.0
  • frontend (dev only) — Vite dev server

4. Run migrations

docker compose exec app composer migrate

5. Create the first admin user

docker compose exec app php artisan admin:create \
  --email=you@example.com \
  --password=yourpass

6. Open the Admin UI

Visit http://localhost:8080/admin and log in.


Production deployment

For production on a VPS:

  1. Set APP_URL to your real domain with HTTPS
  2. Configure a reverse proxy (nginx, Caddy) in front of port 8080
  3. Set APP_DEBUG=false
  4. Use Docker volumes for MySQL data persistence

Health check

curl https://your-domain.com/health
# {"status":"ok"}