-
Notifications
You must be signed in to change notification settings - Fork 0
Docker Deployment
Nikita Ganzikov edited this page Jan 6, 2026
·
1 revision
Deploy Bright using Docker for easy containerization and deployment.
docker pull ghcr.io/nnstd/bright:latest
docker run -d -p 3000:3000 -v $(pwd)/data:/root/data ghcr.io/nnstd/bright:latestgit clone https://github.com/nnstd/bright.git
cd bright
docker build -t bright:local .
docker run -d -p 3000:3000 -v $(pwd)/data:/root/data bright:localImages are available on GitHub Container Registry:
-
latest- Latest release -
v0.1.0- Specific version -
0.1- Major.minor version -
0- Major version
Example:
docker pull ghcr.io/nnstd/bright:v0.1.0
docker pull ghcr.io/nnstd/bright:latestCreate a docker-compose.yml:
version: '3.8'
services:
bright:
image: ghcr.io/nnstd/bright:latest
container_name: bright
ports:
- "3000:3000"
volumes:
- ./data:/root/data
restart: unless-stoppedRun with:
docker-compose up -dThe /root/data directory contains all index data and configurations. Mount it to persist data:
docker run -d \
-p 3000:3000 \
-v /path/to/host/data:/root/data \
ghcr.io/nnstd/bright:latestCurrently, Bright uses default configuration. The server listens on port 3000.
Expose port 3000:
docker run -d -p 3000:3000 ghcr.io/nnstd/bright:latestMap to a different host port:
docker run -d -p 8080:3000 ghcr.io/nnstd/bright:latestAccess at http://localhost:8080
Create a custom network for microservices:
docker network create bright-network
docker run -d \
--name bright \
--network bright-network \
-p 3000:3000 \
ghcr.io/nnstd/bright:latestserver {
listen 80;
server_name search.example.com;
location / {
proxy_pass http://localhost:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}docker run -d \
-p 3000:3000 \
-v $(pwd)/data:/root/data \
--memory="1g" \
--cpus="2" \
ghcr.io/nnstd/bright:latestAdd a health check to your docker-compose.yml:
services:
bright:
image: ghcr.io/nnstd/bright:latest
healthcheck:
test: ["CMD", "wget", "--quiet", "--tries=1", "--spider", "http://localhost:3000/"]
interval: 30s
timeout: 10s
retries: 3
start_period: 40sExample deployment manifest:
apiVersion: apps/v1
kind: Deployment
metadata:
name: bright
spec:
replicas: 1
selector:
matchLabels:
app: bright
template:
metadata:
labels:
app: bright
spec:
containers:
- name: bright
image: ghcr.io/nnstd/bright:latest
ports:
- containerPort: 3000
volumeMounts:
- name: data
mountPath: /root/data
volumes:
- name: data
persistentVolumeClaim:
claimName: bright-pvc
---
apiVersion: v1
kind: Service
metadata:
name: bright
spec:
selector:
app: bright
ports:
- port: 3000
targetPort: 3000
type: LoadBalancerdocker logs bright
docker logs -f bright # Follow logsdocker exec -it bright shdocker exec bright ls -la /root/datadocker build --no-cache -t bright:local .Images are automatically built and pushed to GitHub Container Registry when tags are pushed:
git tag v0.2.0
git push origin v0.2.0The GitHub Actions workflow will:
- Build the Docker image
- Tag it with version, major.minor, major, and SHA
- Push to
ghcr.io/nnstd/bright