feat: add Docker configuration for deployment
This commit is contained in:
4
.dockerignore
Normal file
4
.dockerignore
Normal file
@@ -0,0 +1,4 @@
|
||||
node_modules/
|
||||
.env
|
||||
data/
|
||||
*.log
|
||||
14
.env.development
Normal file
14
.env.development
Normal file
@@ -0,0 +1,14 @@
|
||||
# SimpleNote Web - Development Environment
|
||||
|
||||
# Server
|
||||
PORT=3000
|
||||
NODE_ENV=development
|
||||
|
||||
# Auth - generate with: node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"
|
||||
ADMIN_TOKEN=dev-admin-token-change-in-production
|
||||
|
||||
# Data
|
||||
DATA_ROOT=./data
|
||||
|
||||
# CORS (comma-separated origins or * for all)
|
||||
CORS_ORIGIN=http://localhost:5173,http://localhost:3000
|
||||
14
.env.production
Normal file
14
.env.production
Normal file
@@ -0,0 +1,14 @@
|
||||
# SimpleNote Web - Production Environment
|
||||
|
||||
# Server
|
||||
PORT=3000
|
||||
NODE_ENV=production
|
||||
|
||||
# Auth
|
||||
ADMIN_TOKEN=change-me-in-production
|
||||
|
||||
# Data
|
||||
DATA_ROOT=./data
|
||||
|
||||
# CORS (comma-separated origins or * for all)
|
||||
CORS_ORIGIN=*
|
||||
18
Dockerfile
Normal file
18
Dockerfile
Normal file
@@ -0,0 +1,18 @@
|
||||
FROM node:18-alpine
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
COPY package*.json ./
|
||||
RUN npm ci --only=production
|
||||
|
||||
COPY src/ ./src/
|
||||
COPY data/ ./data/
|
||||
COPY ui/ ./ui/
|
||||
COPY .env.example ./
|
||||
|
||||
EXPOSE 3000
|
||||
|
||||
ENV NODE_ENV=production
|
||||
ENV PORT=3000
|
||||
|
||||
CMD ["node", "src/index.js"]
|
||||
23
docker-compose.yml
Normal file
23
docker-compose.yml
Normal file
@@ -0,0 +1,23 @@
|
||||
services:
|
||||
web:
|
||||
build: .
|
||||
container_name: simplenote-web
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "${SIMPLENOTE_PORT:-3000}:3000"
|
||||
environment:
|
||||
- NODE_ENV=production
|
||||
- PORT=3000
|
||||
- ADMIN_TOKEN=${SIMPLENOTE_ADMIN_TOKEN}
|
||||
- DATA_ROOT=/app/data
|
||||
- CORS_ORIGIN=${SIMPLENOTE_CORS_ORIGIN:-*}
|
||||
volumes:
|
||||
- simplenote-data:/app/data
|
||||
healthcheck:
|
||||
test: ["CMD", "wget", "-qO-", "http://localhost:3000/health"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
|
||||
volumes:
|
||||
simplenote-data:
|
||||
Reference in New Issue
Block a user