diff --git a/Makefile b/Makefile index 203a4eea45..508e0115aa 100644 --- a/Makefile +++ b/Makefile @@ -1,8 +1,8 @@ dev: - docker-compose -f ./server/docker-compose.yml up + docker-compose -f ./docker/docker-compose.yml up dev-update: - docker-compose -f ./server/docker-compose.yml up --build -V + docker-compose -f ./docker/docker-compose.yml up --build -V dev-scale: - docker-compose -f ./server/docker-compose.yml up --build -V --scale immich_server=3 --remove-orphans + docker-compose -f ./docker/docker-compose.yml up --build -V --scale immich_server=3 --remove-orphans diff --git a/server/.env.example b/docker/.env.example similarity index 100% rename from server/.env.example rename to docker/.env.example diff --git a/docker/.gitignore b/docker/.gitignore new file mode 100644 index 0000000000..2eea525d88 --- /dev/null +++ b/docker/.gitignore @@ -0,0 +1 @@ +.env \ No newline at end of file diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml new file mode 100644 index 0000000000..4caec95b48 --- /dev/null +++ b/docker/docker-compose.yml @@ -0,0 +1,66 @@ +version: "3.8" + +services: + immich_server: + image: immich-server-dev:1.0.0 + build: + context: . + target: development + dockerfile: ../server/Dockerfile + command: npm run start:dev + expose: + - "3000" + volumes: + - ../server:/usr/src/app + - ${UPLOAD_LOCATION}:/usr/src/app/upload + - /usr/src/app/node_modules + env_file: + - .env + depends_on: + - redis + - database + networks: + - immich_network + + redis: + container_name: immich_redis + image: redis:6.2 + networks: + - immich_network + + database: + container_name: immich_postgres + image: postgres:14 + env_file: + - .env + environment: + POSTGRES_PASSWORD: ${DB_PASSWORD} + POSTGRES_USER: ${DB_USERNAME} + POSTGRES_DB: ${DB_DATABASE_NAME} + PG_DATA: /var/lib/postgresql/data + volumes: + - pgdata:/var/lib/postgresql/data + ports: + - 5432:5432 + networks: + - immich_network + + nginx: + container_name: proxy_nginx + image: nginx:latest + volumes: + - ./settings/nginx-conf:/etc/nginx/conf.d + ports: + - 2283:80 + - 2284:443 + logging: + driver: none + networks: + - immich_network + depends_on: + - immich_server + +networks: + immich_network: +volumes: + pgdata: diff --git a/docker/settings/nginx-conf/nginx.conf b/docker/settings/nginx-conf/nginx.conf new file mode 100644 index 0000000000..cb6edc3638 --- /dev/null +++ b/docker/settings/nginx-conf/nginx.conf @@ -0,0 +1,35 @@ + +map $http_upgrade $connection_upgrade { + default upgrade; + '' close; +} + +# events { +# worker_connections 1000; +# } + +server { + + client_max_body_size 50000M; + + listen 80; + + location / { + proxy_buffering off; + proxy_buffer_size 16k; + proxy_busy_buffers_size 24k; + proxy_buffers 64 4k; + proxy_force_ranges on; + + proxy_http_version 1.1; + 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; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection "upgrade"; + proxy_set_header Host $host; + + proxy_pass http://immich_server:3000; + } +} diff --git a/server/src/config/database.config.ts b/server/src/config/database.config.ts index 20621d618d..8b14c20ba6 100644 --- a/server/src/config/database.config.ts +++ b/server/src/config/database.config.ts @@ -1,11 +1,11 @@ import { TypeOrmModuleOptions } from '@nestjs/typeorm'; -import dotenv from 'dotenv'; +// import dotenv from 'dotenv'; -const result = dotenv.config(); +// const result = dotenv.config(); -if (result.error) { - console.log(result.error); -} +// if (result.error) { +// console.log(result.error); +// } export const databaseConfig: TypeOrmModuleOptions = { type: 'postgres', diff --git a/server/src/modules/image-optimize/image-optimize.module.ts b/server/src/modules/image-optimize/image-optimize.module.ts index d92e8c2032..230402cb41 100644 --- a/server/src/modules/image-optimize/image-optimize.module.ts +++ b/server/src/modules/image-optimize/image-optimize.module.ts @@ -1,14 +1,8 @@ import { BullModule } from '@nestjs/bull'; import { Module } from '@nestjs/common'; import { TypeOrmModule } from '@nestjs/typeorm'; -import { join } from 'path'; -import { AssetModule } from '../../api-v1/asset/asset.module'; -import { AssetService } from '../../api-v1/asset/asset.service'; import { AssetEntity } from '../../api-v1/asset/entities/asset.entity'; -import { CommunicationGateway } from '../../api-v1/communication/communication.gateway'; import { CommunicationModule } from '../../api-v1/communication/communication.module'; -import { UserEntity } from '../../api-v1/user/entities/user.entity'; -import { ImmichJwtModule } from '../immich-jwt/immich-jwt.module'; import { ImageOptimizeProcessor } from './image-optimize.processor'; import { AssetOptimizeService } from './image-optimize.service';