Merge pull request #41 from fossyy/staging

Staging
This commit is contained in:
2024-09-08 17:27:56 +07:00
committed by GitHub
3 changed files with 58 additions and 14 deletions

7
cache/cache.go vendored
View File

@ -2,6 +2,7 @@ package cache
import (
"context"
"fmt"
"github.com/fossyy/filekeeper/types"
"github.com/redis/go-redis/v9"
"time"
@ -12,10 +13,10 @@ type RedisServer struct {
database types.Database
}
func NewRedisServer(db types.Database) types.CachingServer {
func NewRedisServer(host, port, password string, db types.Database) types.CachingServer {
client := redis.NewClient(&redis.Options{
Addr: "localhost:6379",
Password: "Password123",
Addr: fmt.Sprintf("%s:%s", host, port),
Password: password,
DB: 0,
})
return &RedisServer{client: client, database: db}

View File

@ -1,13 +1,19 @@
version: '3.8'
services:
mysql-filekeeper:
image: mysql:latest
container_name: mysql-filekeeper
postgres-server:
image: postgres:16.0
container_name: postgres-filekeeper
environment:
MYSQL_ROOT_PASSWORD: VerySecretPassword
POSTGRES_PASSWORD: VerySecretPassword
volumes:
- /opt/mysql:/var/lib/mysql
- postgres:/var/lib/postgresql/data
networks:
- filekeeper
redis:
image: redis:7.4.0
container_name: redis-filekeeper
networks:
- filekeeper
@ -21,9 +27,9 @@ services:
CORS_PROTO: https
CORS_LIST: filekeeper.fossy.my.id:443,fossy.my.id:443
CORS_METHODS: POST,GET
DB_HOST: mysql-filekeeper
DB_PORT: 3306
DB_USERNAME: root
DB_HOST: postgres-filekeeper
DB_PORT: 5432
DB_USERNAME: postgres
DB_PASSWORD: VerySecretPassword
DB_NAME: filekeeper
SMTP_HOST: mail.example.com
@ -32,15 +38,49 @@ services:
SMTP_PASSWORD: VerySecretPassword
SESSION_NAME: Session
SESSION_MAX_AGE: 604800
REDIS_HOST: redis-filekeeper
REDIS_PORT: 6379
REDIS_PASSWORD: VerySecretPassword
volumes:
- /opt/filekeeper/uploads:/src/uploads
networks:
- filekeeper
- traefik
labels:
- "traefik.enable=true"
- "traefik.http.routers.filekeeper.rule=Host(`filekeeper-staging.com`)"
- "traefik.http.services.filekeeper.loadbalancer.server.port=8000"
depends_on:
- mysql-filekeeper
- postgres-server
- redis
restart: on-failure
traefik:
image: traefik:v2.8
container_name: traefik
command:
- "--api.insecure=true"
- "--providers.docker=true"
- "--entrypoints.web.address=:80"
- "--entrypoints.websecure.address=:443"
- "--certificatesresolvers.le.acme.tlschallenge=true"
- "--certificatesresolvers.le.acme.email=your-email@example.com"
- "--certificatesresolvers.le.acme.storage=/letsencrypt/acme.json"
ports:
- "8000:8000"
- "80:80"
- "443:443"
- "8080:8080"
volumes:
- "/var/run/docker.sock:/var/run/docker.sock"
- "./letsencrypt:/letsencrypt"
networks:
- filekeeper
- traefik
networks:
filekeeper:
traefik:
volumes:
postgres:
letsencrypt:

View File

@ -24,9 +24,12 @@ func main() {
dbHost := utils.Getenv("DB_HOST")
dbPort := utils.Getenv("DB_PORT")
dbName := utils.Getenv("DB_NAME")
redisHost := utils.Getenv("REDIS_HOST")
redisPort := utils.Getenv("REDIS_PORT")
redisPassword := utils.Getenv("REDIS_PASSWORD")
database := db.NewPostgresDB(dbUser, dbPass, dbHost, dbPort, dbName, db.DisableSSL)
cacheServer := cache.NewRedisServer(database)
cacheServer := cache.NewRedisServer(redisHost, redisPort, redisPassword, database)
services := service.NewService(database, cacheServer)
smtpPort, _ := strconv.Atoi(utils.Getenv("SMTP_PORT"))