aboutsummaryrefslogtreecommitdiff
path: root/.devcontainer
diff options
context:
space:
mode:
Diffstat (limited to '.devcontainer')
-rw-r--r--.devcontainer/devcontainer.json8
-rw-r--r--.devcontainer/pgsql/Dockerfile8
-rw-r--r--.devcontainer/pgsql/devcontainer.json45
-rw-r--r--.devcontainer/pgsql/docker-compose.yaml50
4 files changed, 109 insertions, 2 deletions
diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json
index 228d4a17c..bcdd82cb9 100644
--- a/.devcontainer/devcontainer.json
+++ b/.devcontainer/devcontainer.json
@@ -1,6 +1,8 @@
{
"name": "Development Jellyfin Server",
- "image":"mcr.microsoft.com/devcontainers/dotnet:9.0-bookworm",
+ "image": "mcr.microsoft.com/devcontainers/dotnet:9.0-bookworm",
+ "service": "app",
+ "workspaceFolder": "/workspaces/${localWorkspaceFolderBasename}",
// restores nuget packages, installs the dotnet workloads and installs the dev https certificate
"postStartCommand": "sudo dotnet restore; sudo dotnet workload update; sudo dotnet dev-certs https --trust; sudo bash \"./.devcontainer/install-ffmpeg.sh\"",
// reads the extensions list and installs them
@@ -13,7 +15,9 @@
},
"ghcr.io/devcontainers-contrib/features/apt-packages:1": {
"preserve_apt_list": false,
- "packages": ["libfontconfig1"]
+ "packages": [
+ "libfontconfig1"
+ ]
},
"ghcr.io/devcontainers/features/docker-in-docker:2": {
"dockerDashComposeVersion": "v2"
diff --git a/.devcontainer/pgsql/Dockerfile b/.devcontainer/pgsql/Dockerfile
new file mode 100644
index 000000000..ff7f3bcd7
--- /dev/null
+++ b/.devcontainer/pgsql/Dockerfile
@@ -0,0 +1,8 @@
+FROM mcr.microsoft.com/devcontainers/dotnet:9.0-bookworm
+
+# [Optional] Uncomment this section to install additional OS packages.
+# RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
+# && apt-get -y install --no-install-recommends <your-package-list-here>
+
+# [Optional] Uncomment this line to install global node packages.
+# RUN su vscode -c "source /usr/local/share/nvm/nvm.sh && npm install -g <your-package-here>" 2>&1
diff --git a/.devcontainer/pgsql/devcontainer.json b/.devcontainer/pgsql/devcontainer.json
new file mode 100644
index 000000000..7fb09fdc9
--- /dev/null
+++ b/.devcontainer/pgsql/devcontainer.json
@@ -0,0 +1,45 @@
+{
+ "name": "Development Jellyfin Server",
+ "dockerComposeFile": "docker-compose.yaml",
+ "service": "app",
+ "workspaceFolder": "/workspaces/${localWorkspaceFolderBasename}",
+ // restores nuget packages, installs the dotnet workloads and installs the dev https certificate
+ "postStartCommand": "sudo dotnet restore; sudo dotnet workload update; sudo dotnet dev-certs https --trust; sudo bash \"./.devcontainer/install-ffmpeg.sh\"",
+ // reads the extensions list and installs them
+ "postAttachCommand": "cat .vscode/extensions.json | jq -r .recommendations[] | xargs -n 1 code --install-extension",
+ "forwardPorts": ["pgadmin:8081"],
+ "portsAttributes": {
+ "8081": {
+ "label": "pgAdmin",
+ "onAutoForward": "notify",
+ "requireLocalPort": true
+ },
+ "8096": {
+ "label": "jellyfinapi",
+ "onAutoForward": "notify",
+ "requireLocalPort": true
+ }
+ },
+ "features": {
+ "ghcr.io/devcontainers/features/dotnet:2": {
+ "version": "none",
+ "dotnetRuntimeVersions": "9.0",
+ "aspNetCoreRuntimeVersions": "9.0"
+ },
+ "ghcr.io/devcontainers-contrib/features/apt-packages:1": {
+ "preserve_apt_list": false,
+ "packages": [
+ "libfontconfig1"
+ ]
+ },
+ "ghcr.io/devcontainers/features/docker-in-docker:2": {
+ "dockerDashComposeVersion": "v2"
+ },
+ "ghcr.io/devcontainers/features/github-cli:1": {},
+ "ghcr.io/eitsupi/devcontainer-features/jq-likes:2": {}
+ },
+ "hostRequirements": {
+ "memory": "8gb",
+ "cpus": 4
+ }
+}
diff --git a/.devcontainer/pgsql/docker-compose.yaml b/.devcontainer/pgsql/docker-compose.yaml
new file mode 100644
index 000000000..dda6deda6
--- /dev/null
+++ b/.devcontainer/pgsql/docker-compose.yaml
@@ -0,0 +1,50 @@
+version: '3.8'
+
+services:
+ app:
+ build:
+ context: .
+ dockerfile: Dockerfile
+
+ volumes:
+ - ../../..:/workspaces:cached
+
+ # Overrides default command so things don't shut down after the process ends.
+ command: sleep infinity
+
+ # Runs app on the same network as the database container, allows "forwardPorts" in devcontainer.json function.
+ network_mode: service:pgadmin
+
+ # Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root.
+ # user: root
+
+ # Use "forwardPorts" in **devcontainer.json** to forward an app port locally.
+ # (Adding the "ports" property to this file will not forward from a Codespace.)
+
+ db:
+ image: postgres:17.2
+ restart: unless-stopped
+ volumes:
+ - ./pgdata:/var/lib/postgresql/data
+ environment:
+ POSTGRES_PASSWORD: jellyfin
+ POSTGRES_USER: jellyfin
+ POSTGRES_DB: Jellyfin
+ pgadmin:
+ image: dpage/pgadmin4
+ restart: unless-stopped
+ volumes:
+ - ./pgadmin:/pgadmin
+ - pgadmin-data:/var/lib/pgadmin
+ environment:
+ - PGADMIN_DEFAULT_EMAIL=user@domain.com
+ - PGADMIN_DEFAULT_PASSWORD=SuperSecret
+ - PGADMIN_LISTEN_PORT=8081
+ - PGADMIN_SERVER_JSON_FILE=/pgadmin/servers.json
+ - PGADMIN_CONFIG_SERVER_MODE=False
+
+ # Add "forwardPorts": ["5432"] to **devcontainer.json** to forward PostgreSQL locally.
+ # (Adding the "ports" property to this file will not forward from a Codespace.)
+
+volumes:
+ pgadmin-data: