Docker deployment for most users
This commit is contained in:
41
README.md
41
README.md
@@ -78,37 +78,44 @@ A self-hosted, cross-platform update management platform built for homelabs and
|
|||||||
|
|
||||||
## Quick Start
|
## Quick Start
|
||||||
|
|
||||||
### 1. Server Setup (Linux)
|
### 1. Server Setup (Docker - Recommended)
|
||||||
```bash
|
```bash
|
||||||
# Clone and build
|
# Clone repository
|
||||||
git clone https://github.com/Fimeg/RedFlag.git
|
git clone https://github.com/Fimeg/RedFlag.git
|
||||||
cd RedFlag
|
cd RedFlag
|
||||||
|
|
||||||
# Option 1: Use Makefile (recommended)
|
# Start database and server
|
||||||
|
docker-compose up -d
|
||||||
|
|
||||||
|
# Setup server (one-time)
|
||||||
|
docker-compose exec server ./redflag-server --setup
|
||||||
|
|
||||||
|
# Run database migrations
|
||||||
|
docker-compose exec server ./redflag-server --migrate
|
||||||
|
|
||||||
|
# Restart server with configuration
|
||||||
|
docker-compose restart server
|
||||||
|
|
||||||
|
# Access: http://localhost:8080
|
||||||
|
# Admin: http://localhost:8080/admin
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2. Manual Setup (Development)
|
||||||
|
```bash
|
||||||
|
# Build components
|
||||||
make build-all
|
make build-all
|
||||||
|
|
||||||
# Option 2: Manual build
|
|
||||||
cd aggregator-server && go mod tidy && go build -o redflag-server cmd/server/main.go
|
|
||||||
cd ../aggregator-agent && go mod tidy && go build -o redflag-agent cmd/agent/main.go
|
|
||||||
|
|
||||||
# Interactive setup wizard
|
|
||||||
sudo ./redflag-server --setup
|
|
||||||
# Follow prompts for:
|
|
||||||
# - Admin credentials
|
|
||||||
# - Database configuration
|
|
||||||
# - Server settings
|
|
||||||
# - Agent seat limits
|
|
||||||
|
|
||||||
# Start database
|
# Start database
|
||||||
docker-compose up -d postgres
|
docker-compose up -d postgres
|
||||||
|
|
||||||
|
# Setup server
|
||||||
|
cd aggregator-server && sudo ./redflag-server --setup
|
||||||
|
|
||||||
# Run migrations
|
# Run migrations
|
||||||
./redflag-server --migrate
|
./redflag-server --migrate
|
||||||
|
|
||||||
# Start server
|
# Start server
|
||||||
./redflag-server
|
./redflag-server
|
||||||
# Server: http://redflag.wiuf.net:8080
|
|
||||||
# Dashboard: http://redflag.wiuf.net:8080
|
|
||||||
```
|
```
|
||||||
|
|
||||||
### 2. Agent Deployment (Linux)
|
### 2. Agent Deployment (Linux)
|
||||||
|
|||||||
@@ -11,28 +11,20 @@
|
|||||||
git clone https://github.com/Fimeg/RedFlag.git
|
git clone https://github.com/Fimeg/RedFlag.git
|
||||||
cd RedFlag
|
cd RedFlag
|
||||||
|
|
||||||
# Build components (requires Go)
|
# Docker deployment (recommended)
|
||||||
make build-all
|
docker-compose up -d
|
||||||
|
|
||||||
# Start database
|
# One-time server setup
|
||||||
docker-compose up -d postgres
|
docker-compose exec server ./redflag-server --setup
|
||||||
|
|
||||||
# Configure server (interactive)
|
|
||||||
cd aggregator-server
|
|
||||||
./redflag-server --setup
|
|
||||||
|
|
||||||
# Run database migrations
|
# Run database migrations
|
||||||
./redflag-server --migrate
|
docker-compose exec server ./redflag-server --migrate
|
||||||
|
|
||||||
# Start server
|
# Restart server with config
|
||||||
./redflag-server
|
docker-compose restart server
|
||||||
|
|
||||||
# In another terminal, generate and deploy agent
|
# Test server: http://localhost:8080
|
||||||
cd ../aggregator-agent
|
# Admin: http://localhost:8080/admin
|
||||||
|
|
||||||
# Get token from admin UI: http://localhost:8080/admin
|
|
||||||
# Then deploy:
|
|
||||||
./aggregator-agent --server http://localhost:8080 --token <YOUR_TOKEN>
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## What Should Work
|
## What Should Work
|
||||||
|
|||||||
19
aggregator-server/Dockerfile
Normal file
19
aggregator-server/Dockerfile
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
FROM golang:1.21-alpine AS builder
|
||||||
|
|
||||||
|
WORKDIR /app
|
||||||
|
COPY go.mod go.sum ./
|
||||||
|
RUN go mod download
|
||||||
|
|
||||||
|
COPY . .
|
||||||
|
RUN CGO_ENABLED=0 go build -o redflag-server cmd/server/main.go
|
||||||
|
|
||||||
|
FROM alpine:latest
|
||||||
|
|
||||||
|
RUN apk --no-cache add ca-certificates tzdata
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
COPY --from=builder /app/redflag-server .
|
||||||
|
|
||||||
|
EXPOSE 8080
|
||||||
|
|
||||||
|
CMD ["./redflag-server"]
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
module github.com/Fimeg/RedFlag/aggregator-server
|
module github.com/Fimeg/RedFlag/aggregator-server
|
||||||
|
|
||||||
go 1.21
|
go 1.23.0
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/gin-gonic/gin v1.11.0
|
github.com/gin-gonic/gin v1.11.0
|
||||||
|
|||||||
@@ -1,23 +1,47 @@
|
|||||||
version: '3.8'
|
version: '3.8'
|
||||||
|
|
||||||
services:
|
services:
|
||||||
aggregator-db:
|
postgres:
|
||||||
image: postgres:16-alpine
|
image: postgres:16-alpine
|
||||||
container_name: aggregator-db
|
container_name: redflag-postgres
|
||||||
environment:
|
environment:
|
||||||
POSTGRES_DB: aggregator
|
POSTGRES_DB: redflag
|
||||||
POSTGRES_USER: aggregator
|
POSTGRES_USER: redflag
|
||||||
POSTGRES_PASSWORD: aggregator
|
POSTGRES_PASSWORD: redflag
|
||||||
volumes:
|
volumes:
|
||||||
- aggregator-db-data:/var/lib/postgresql/data
|
- postgres-data:/var/lib/postgresql/data
|
||||||
ports:
|
ports:
|
||||||
- "5432:5432"
|
- "5432:5432"
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test: ["CMD-SHELL", "pg_isready -U aggregator"]
|
test: ["CMD-SHELL", "pg_isready -U redflag"]
|
||||||
interval: 10s
|
interval: 10s
|
||||||
timeout: 5s
|
timeout: 5s
|
||||||
retries: 5
|
retries: 5
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
|
||||||
|
server:
|
||||||
|
build:
|
||||||
|
context: ./aggregator-server
|
||||||
|
dockerfile: Dockerfile
|
||||||
|
container_name: redflag-server
|
||||||
|
depends_on:
|
||||||
|
postgres:
|
||||||
|
condition: service_healthy
|
||||||
|
ports:
|
||||||
|
- "8080:8080"
|
||||||
|
environment:
|
||||||
|
- REDFLAG_DB_HOST=postgres
|
||||||
|
- REDFLAG_DB_PORT=5432
|
||||||
|
- REDFLAG_DB_NAME=redflag
|
||||||
|
- REDFLAG_DB_USER=redflag
|
||||||
|
- REDFLAG_DB_PASSWORD=redflag
|
||||||
|
- REDFLAG_SERVER_HOST=0.0.0.0
|
||||||
|
- REDFLAG_SERVER_PORT=8080
|
||||||
|
volumes:
|
||||||
|
- ./aggregator-server/.env:/app/.env
|
||||||
|
- server-data:/app/data
|
||||||
|
restart: unless-stopped
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
aggregator-db-data:
|
postgres-data:
|
||||||
|
server-data:
|
||||||
|
|||||||
Reference in New Issue
Block a user