diff --git a/.env.example b/.env.example index 14c4bcbf..f0ca0969 100644 --- a/.env.example +++ b/.env.example @@ -1,5 +1,5 @@ TVDB__APIKEY= THEMOVIEDB__APIKEY= AUTHENTICATION_SECRET= -POSTGRES_USERNAME= +POSTGRES_USER= POSTGRES_PASSWORD= diff --git a/back/.dockerignore b/back/.dockerignore index 2209499f..23880f5d 100644 --- a/back/.dockerignore +++ b/back/.dockerignore @@ -9,8 +9,10 @@ README.md src/Kyoo.WebApp/Front/nodes_modules **/bin **/obj +out docs tests +!tests/Kyoo.Tests/Kyoo.Tests.csproj front video nginx.conf.template diff --git a/back/.gitignore b/back/.gitignore index f738e8ef..a8d0951a 100644 --- a/back/.gitignore +++ b/back/.gitignore @@ -1,3 +1,4 @@ +out libtranscoder.so libtranscoder.dylib transcoder.dll diff --git a/back/Dockerfile.dev b/back/Dockerfile.dev new file mode 100644 index 00000000..d407dfa7 --- /dev/null +++ b/back/Dockerfile.dev @@ -0,0 +1,36 @@ +FROM gcc:latest as transcoder +RUN apt-get update && apt-get install -y cmake make libavutil-dev libavcodec-dev libavformat-dev +WORKDIR /transcoder +COPY src/Kyoo.Transcoder . +RUN cmake . && make -j + +FROM mcr.microsoft.com/dotnet/sdk:6.0 +RUN apt-get update && apt-get install -y libavutil-dev libavcodec-dev libavformat-dev +WORKDIR /app + + +COPY Kyoo.sln ./Kyoo.sln +COPY nuget.config ./nuget.config +COPY src/Directory.Build.props src/Directory.Build.props +COPY src/Kyoo.Authentication/Kyoo.Authentication.csproj src/Kyoo.Authentication/Kyoo.Authentication.csproj +COPY src/Kyoo.Database/Kyoo.Database.csproj src/Kyoo.Database/Kyoo.Database.csproj +COPY src/Kyoo.Host.Generic/Kyoo.Host.Generic.csproj src/Kyoo.Host.Generic/Kyoo.Host.Generic.csproj +COPY src/Kyoo.SqLite/Kyoo.SqLite.csproj src/Kyoo.SqLite/Kyoo.SqLite.csproj +COPY src/Kyoo.TheMovieDb/Kyoo.TheMovieDb.csproj src/Kyoo.TheMovieDb/Kyoo.TheMovieDb.csproj +COPY src/Kyoo.Abstractions/Kyoo.Abstractions.csproj src/Kyoo.Abstractions/Kyoo.Abstractions.csproj +COPY src/Kyoo.Core/Kyoo.Core.csproj src/Kyoo.Core/Kyoo.Core.csproj +COPY src/Kyoo.Host.Console/Kyoo.Host.Console.csproj src/Kyoo.Host.Console/Kyoo.Host.Console.csproj +COPY src/Kyoo.Postgresql/Kyoo.Postgresql.csproj src/Kyoo.Postgresql/Kyoo.Postgresql.csproj +COPY src/Kyoo.Swagger/Kyoo.Swagger.csproj src/Kyoo.Swagger/Kyoo.Swagger.csproj +COPY src/Kyoo.TheTvdb/Kyoo.TheTvdb.csproj src/Kyoo.TheTvdb/Kyoo.TheTvdb.csproj +COPY tests/Kyoo.Tests/Kyoo.Tests.csproj tests/Kyoo.Tests/Kyoo.Tests.csproj + +RUN dotnet restore + +COPY --from=transcoder /transcoder/libtranscoder.so /usr/lib/ + +EXPOSE 5000 +ENV DOTNET_USE_POLLING_FILE_WATCHER 1 +ENV LD_DEBUG libs +CMD ["dotnet", "watch", "run", "--no-restore", "--project", "src/Kyoo.Host.Console"] + diff --git a/back/Kyoo.sln b/back/Kyoo.sln index bd8e4e15..9ebdae65 100644 --- a/back/Kyoo.sln +++ b/back/Kyoo.sln @@ -81,10 +81,6 @@ Global {4FF1ECD9-6EEF-4440-B037-A661D78FB04D}.Debug|Any CPU.Build.0 = Debug|Any CPU {4FF1ECD9-6EEF-4440-B037-A661D78FB04D}.Release|Any CPU.ActiveCfg = Release|Any CPU {4FF1ECD9-6EEF-4440-B037-A661D78FB04D}.Release|Any CPU.Build.0 = Release|Any CPU - {98851001-40DD-46A6-94B3-2F8D90722076}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {98851001-40DD-46A6-94B3-2F8D90722076}.Debug|Any CPU.Build.0 = Debug|Any CPU - {98851001-40DD-46A6-94B3-2F8D90722076}.Release|Any CPU.ActiveCfg = Release|Any CPU - {98851001-40DD-46A6-94B3-2F8D90722076}.Release|Any CPU.Build.0 = Release|Any CPU {D8658BEA-8949-45AC-BEBB-A4FFC4F800F5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {D8658BEA-8949-45AC-BEBB-A4FFC4F800F5}.Debug|Any CPU.Build.0 = Debug|Any CPU {D8658BEA-8949-45AC-BEBB-A4FFC4F800F5}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -106,7 +102,6 @@ Global {3213C96D-0BF3-460B-A8B5-B9977229408A} = {865461CA-EC06-4B42-91CF-8723B0A9BB67} {6515380E-1E57-42DA-B6E3-E1C8A848818A} = {865461CA-EC06-4B42-91CF-8723B0A9BB67} {D8658BEA-8949-45AC-BEBB-A4FFC4F800F5} = {C569FF25-7E01-484C-9F72-5B99845AD94B} - {98851001-40DD-46A6-94B3-2F8D90722076} = {C569FF25-7E01-484C-9F72-5B99845AD94B} {0938459E-2E2B-457F-8120-7D8CA93866A6} = {C569FF25-7E01-484C-9F72-5B99845AD94B} EndGlobalSection EndGlobal diff --git a/back/src/Directory.Build.props b/back/src/Directory.Build.props index b13c6d17..9e277f26 100644 --- a/back/src/Directory.Build.props +++ b/back/src/Directory.Build.props @@ -23,11 +23,19 @@ true + + $(MsBuildThisFileDirectory)/../out/obj/$(MSBuildProjectName) + $(MsBuildThisFileDirectory)/../out/bin/$(MSBuildProjectName) + + true true true + + true + true diff --git a/stylecop.json b/back/stylecop.json similarity index 100% rename from stylecop.json rename to back/stylecop.json diff --git a/docker-compose.dev.yml b/docker-compose.dev.yml index 50a1b9e5..3894eb5f 100644 --- a/docker-compose.dev.yml +++ b/docker-compose.dev.yml @@ -5,24 +5,33 @@ services: build: context: ./back dockerfile: Dockerfile.dev + ports: + - "5000:5000" restart: on-failure environment: - KYOO_DATADIR=/var/lib/kyoo - DATABASE__ENABLED=postgres - DATABASE__CONFIGURATIONS__POSTGRES__SERVER=postgres - - DATABASE__CONFIGURATIONS__POSTGRES__USER=kyoo - - DATABASE__CONFIGURATIONS__POSTGRES__PASSWORD=kyooPassword + - DATABASE__CONFIGURATIONS__POSTGRES__USER=${POSTGRES_USER} + - DATABASE__CONFIGURATIONS__POSTGRES__PASSWORD=${POSTGRES_PASSWORD} - TVDB__APIKEY=${TVDB__APIKEY} - THEMOVIEDB__APIKEY=${THEMOVIEDB__APIKEY} depends_on: - postgres volumes: + - ./back:/app + - /app/out - kyoo:/var/lib/kyoo - ./video:/video front: build: context: ./front dockerfile: Dockerfile.dev + volumes: + - ./front:/app + - /app/nodes_modules + ports: + - "3000:3000" restart: on-failure environment: - KYOO_URL=http://kyoo:5000 @@ -31,7 +40,7 @@ services: restart: on-failure environment: - PORT=8901 - - FRONT_URL=http://front:8901 + - FRONT_URL=http://front:3000 - BACK_URL=http://kyoo:5000 volumes: - ./nginx.conf.template:/etc/nginx/templates/kyoo.conf.template:ro @@ -44,8 +53,8 @@ services: image: "postgres" restart: on-failure environment: - - POSTGRES_USER=kyoo - - POSTGRES_PASSWORD=kyooPassword + - POSTGRES_USER=${POSTGRES_USER} + - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} volumes: - db:/var/lib/postgresql/data diff --git a/front/.dockerignore b/front/.dockerignore index c5500558..f99434f2 100644 --- a/front/.dockerignore +++ b/front/.dockerignore @@ -1,5 +1,8 @@ Dockerfile +Dockerfile.dev .dockerignore +.eslintrc.json +.gitignore node_modules npm-debug.log README.md diff --git a/front/Dockerfile.dev b/front/Dockerfile.dev new file mode 100644 index 00000000..98d8bcb4 --- /dev/null +++ b/front/Dockerfile.dev @@ -0,0 +1,10 @@ +FROM node:16-alpine AS builder +WORKDIR /app + +COPY package.json yarn.lock ./ +RUN yarn --frozen-lockfile + +ENV NEXT_TELEMETRY_DISABLED 1 +EXPOSE 3000 +ENV PORT 3000 +CMD ["yarn", "dev"]