Add Redis initialization to main function
This commit is contained in:
7
cache/cache.go
vendored
7
cache/cache.go
vendored
@ -2,6 +2,7 @@ package cache
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
|
"fmt"
|
||||||
"github.com/fossyy/filekeeper/types"
|
"github.com/fossyy/filekeeper/types"
|
||||||
"github.com/redis/go-redis/v9"
|
"github.com/redis/go-redis/v9"
|
||||||
"time"
|
"time"
|
||||||
@ -12,10 +13,10 @@ type RedisServer struct {
|
|||||||
database types.Database
|
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{
|
client := redis.NewClient(&redis.Options{
|
||||||
Addr: "localhost:6379",
|
Addr: fmt.Sprintf("%s:%s", host, port),
|
||||||
Password: "Password123",
|
Password: password,
|
||||||
DB: 0,
|
DB: 0,
|
||||||
})
|
})
|
||||||
return &RedisServer{client: client, database: db}
|
return &RedisServer{client: client, database: db}
|
||||||
|
@ -1,13 +1,19 @@
|
|||||||
version: '3.8'
|
version: '3.8'
|
||||||
|
|
||||||
services:
|
services:
|
||||||
mysql-filekeeper:
|
postgres-server:
|
||||||
image: mysql:latest
|
image: postgres:16.0
|
||||||
container_name: mysql-filekeeper
|
container_name: postgres-filekeeper
|
||||||
environment:
|
environment:
|
||||||
MYSQL_ROOT_PASSWORD: VerySecretPassword
|
POSTGRES_PASSWORD: VerySecretPassword
|
||||||
volumes:
|
volumes:
|
||||||
- /opt/mysql:/var/lib/mysql
|
- postgres:/var/lib/postgresql/data
|
||||||
|
networks:
|
||||||
|
- filekeeper
|
||||||
|
|
||||||
|
redis:
|
||||||
|
image: redis:7.4.0
|
||||||
|
container_name: redis-filekeeper
|
||||||
networks:
|
networks:
|
||||||
- filekeeper
|
- filekeeper
|
||||||
|
|
||||||
@ -21,9 +27,9 @@ services:
|
|||||||
CORS_PROTO: https
|
CORS_PROTO: https
|
||||||
CORS_LIST: filekeeper.fossy.my.id:443,fossy.my.id:443
|
CORS_LIST: filekeeper.fossy.my.id:443,fossy.my.id:443
|
||||||
CORS_METHODS: POST,GET
|
CORS_METHODS: POST,GET
|
||||||
DB_HOST: mysql-filekeeper
|
DB_HOST: postgres-filekeeper
|
||||||
DB_PORT: 3306
|
DB_PORT: 5432
|
||||||
DB_USERNAME: root
|
DB_USERNAME: postgres
|
||||||
DB_PASSWORD: VerySecretPassword
|
DB_PASSWORD: VerySecretPassword
|
||||||
DB_NAME: filekeeper
|
DB_NAME: filekeeper
|
||||||
SMTP_HOST: mail.example.com
|
SMTP_HOST: mail.example.com
|
||||||
@ -32,15 +38,49 @@ services:
|
|||||||
SMTP_PASSWORD: VerySecretPassword
|
SMTP_PASSWORD: VerySecretPassword
|
||||||
SESSION_NAME: Session
|
SESSION_NAME: Session
|
||||||
SESSION_MAX_AGE: 604800
|
SESSION_MAX_AGE: 604800
|
||||||
|
REDIS_HOST: redis-filekeeper
|
||||||
|
REDIS_PORT: 6379
|
||||||
|
REDIS_PASSWORD: VerySecretPassword
|
||||||
volumes:
|
volumes:
|
||||||
- /opt/filekeeper/uploads:/src/uploads
|
- /opt/filekeeper/uploads:/src/uploads
|
||||||
networks:
|
networks:
|
||||||
- filekeeper
|
- 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:
|
depends_on:
|
||||||
- mysql-filekeeper
|
- postgres-server
|
||||||
|
- redis
|
||||||
restart: on-failure
|
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:
|
ports:
|
||||||
- "8000:8000"
|
- "80:80"
|
||||||
|
- "443:443"
|
||||||
|
- "8080:8080"
|
||||||
|
volumes:
|
||||||
|
- "/var/run/docker.sock:/var/run/docker.sock"
|
||||||
|
- "./letsencrypt:/letsencrypt"
|
||||||
|
networks:
|
||||||
|
- filekeeper
|
||||||
|
- traefik
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
filekeeper:
|
filekeeper:
|
||||||
|
traefik:
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
postgres:
|
||||||
|
letsencrypt:
|
||||||
|
0
letsencrypt/acme.json
Normal file
0
letsencrypt/acme.json
Normal file
Reference in New Issue
Block a user