From 595112b9cf98e3e0ec7362f1b871b7e462f3a58c Mon Sep 17 00:00:00 2001 From: Bagas Aulia Rezki Date: Sun, 8 Sep 2024 17:25:02 +0700 Subject: [PATCH 1/3] Add Redis initialization to main function --- main.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/main.go b/main.go index addb202..1ed4f6e 100644 --- a/main.go +++ b/main.go @@ -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")) From 66b1162c5316fe5407444aba3f13437a165d7390 Mon Sep 17 00:00:00 2001 From: Bagas Aulia Rezki Date: Sun, 8 Sep 2024 17:25:17 +0700 Subject: [PATCH 2/3] Add Redis initialization to main function --- cache/cache.go | 7 ++--- docker-compose.yaml | 60 +++++++++++++++++++++++++++++++++++-------- letsencrypt/acme.json | 0 3 files changed, 54 insertions(+), 13 deletions(-) create mode 100644 letsencrypt/acme.json diff --git a/cache/cache.go b/cache/cache.go index 49c8bb9..300bd00 100644 --- a/cache/cache.go +++ b/cache/cache.go @@ -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} diff --git a/docker-compose.yaml b/docker-compose.yaml index 5280b08..e266cca 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -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: diff --git a/letsencrypt/acme.json b/letsencrypt/acme.json new file mode 100644 index 0000000..e69de29 From 6438e1812ddfa51d2a8e3601cd3aca7fc96a4fc0 Mon Sep 17 00:00:00 2001 From: Bagas Aulia Rezki Date: Sun, 8 Sep 2024 17:25:39 +0700 Subject: [PATCH 3/3] Add Redis initialization to main function --- letsencrypt/acme.json | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 letsencrypt/acme.json diff --git a/letsencrypt/acme.json b/letsencrypt/acme.json deleted file mode 100644 index e69de29..0000000