summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Frédéric Guillot <f@miniflux.net> 2020-10-27 21:21:19 -0700
committerGravatar Frédéric Guillot <f@miniflux.net> 2020-10-27 21:27:15 -0700
commit519fbcf581616db83696dc8242d9c7de55a598d8 (patch)
tree695c8bcfad60d9f83915081085a1547e6466cafb
parente74bf260c64b1795bf6768f5f6d3ce6aae50700c (diff)
downloadv2-519fbcf581616db83696dc8242d9c7de55a598d8.tar.gz
v2-519fbcf581616db83696dc8242d9c7de55a598d8.tar.zst
v2-519fbcf581616db83696dc8242d9c7de55a598d8.zip
Add few Docker Compose examples
-rw-r--r--contrib/README.md4
-rw-r--r--contrib/docker-compose/Caddyfile2
-rw-r--r--contrib/docker-compose/README.md13
-rw-r--r--contrib/docker-compose/basic.yml25
-rw-r--r--contrib/docker-compose/caddy.yml38
-rw-r--r--contrib/docker-compose/traefik.yml48
6 files changed, 130 insertions, 0 deletions
diff --git a/contrib/README.md b/contrib/README.md
new file mode 100644
index 00000000..a40be36e
--- /dev/null
+++ b/contrib/README.md
@@ -0,0 +1,4 @@
+The contrib directory contains various useful things contributed by the community.
+
+Community contributions are not officially supported by the maintainers.
+There is no guarantee whatsoever that anything in this folder works.
diff --git a/contrib/docker-compose/Caddyfile b/contrib/docker-compose/Caddyfile
new file mode 100644
index 00000000..6754535f
--- /dev/null
+++ b/contrib/docker-compose/Caddyfile
@@ -0,0 +1,2 @@
+miniflux.example.org
+reverse_proxy miniflux:8080
diff --git a/contrib/docker-compose/README.md b/contrib/docker-compose/README.md
new file mode 100644
index 00000000..300d381e
--- /dev/null
+++ b/contrib/docker-compose/README.md
@@ -0,0 +1,13 @@
+Docker-Compose Examples
+=======================
+
+Here are few Docker Compose examples:
+
+- `basic.yml`: Basic example
+- `caddy.yml`: Use Caddy as reverse-proxy with automatic HTTPS
+- `traefik.yml`: Use Traefik as reverse-proxy with automatic HTTPS
+
+```bash
+docker-compose -f basic.yml up -d db
+docker-compose -f basic.yml up
+```
diff --git a/contrib/docker-compose/basic.yml b/contrib/docker-compose/basic.yml
new file mode 100644
index 00000000..acc8b0af
--- /dev/null
+++ b/contrib/docker-compose/basic.yml
@@ -0,0 +1,25 @@
+version: '3.3'
+services:
+ miniflux:
+ image: miniflux/miniflux:latest
+ container_name: miniflux
+ ports:
+ - "80:8080"
+ depends_on:
+ - db
+ environment:
+ - DATABASE_URL=postgres://miniflux:secret@db/miniflux?sslmode=disable
+ - RUN_MIGRATIONS=1
+ - CREATE_ADMIN=1
+ - ADMIN_USERNAME=admin
+ - ADMIN_PASSWORD=test123
+ db:
+ image: postgres:latest
+ container_name: postgres
+ environment:
+ - POSTGRES_USER=miniflux
+ - POSTGRES_PASSWORD=secret
+ volumes:
+ - miniflux-db:/var/lib/postgresql/data
+volumes:
+ miniflux-db: \ No newline at end of file
diff --git a/contrib/docker-compose/caddy.yml b/contrib/docker-compose/caddy.yml
new file mode 100644
index 00000000..c9f16596
--- /dev/null
+++ b/contrib/docker-compose/caddy.yml
@@ -0,0 +1,38 @@
+version: '3.3'
+services:
+ caddy:
+ image: caddy:2
+ container_name: caddy
+ depends_on:
+ - miniflux
+ ports:
+ - "80:80"
+ - "443:443"
+ volumes:
+ - $PWD/Caddyfile:/etc/caddy/Caddyfile
+ - caddy_data:/data
+ - caddy_config:/config
+ miniflux:
+ image: miniflux/miniflux:latest
+ container_name: miniflux
+ depends_on:
+ - db
+ environment:
+ - DATABASE_URL=postgres://miniflux:secret@db/miniflux?sslmode=disable
+ - RUN_MIGRATIONS=1
+ - CREATE_ADMIN=1
+ - ADMIN_USERNAME=admin
+ - ADMIN_PASSWORD=test123
+ - BASE_URL=https://miniflux.example.org
+ db:
+ image: postgres:latest
+ container_name: postgres
+ environment:
+ - POSTGRES_USER=miniflux
+ - POSTGRES_PASSWORD=secret
+ volumes:
+ - miniflux-db:/var/lib/postgresql/data
+volumes:
+ miniflux-db:
+ caddy_data:
+ caddy_config:
diff --git a/contrib/docker-compose/traefik.yml b/contrib/docker-compose/traefik.yml
new file mode 100644
index 00000000..a06a519e
--- /dev/null
+++ b/contrib/docker-compose/traefik.yml
@@ -0,0 +1,48 @@
+version: '3.3'
+services:
+ traefik:
+ image: "traefik:v2.3"
+ container_name: traefik
+ command:
+ - "--providers.docker=true"
+ - "--providers.docker.exposedbydefault=false"
+ - "--entrypoints.websecure.address=:443"
+ - "--certificatesresolvers.myresolver.acme.tlschallenge=true"
+ - "--certificatesresolvers.myresolver.acme.email=postmaster@example.com"
+ - "--certificatesresolvers.myresolver.acme.storage=/letsencrypt/acme.json"
+ depends_on:
+ - miniflux
+ ports:
+ - "443:443"
+ volumes:
+ - "./letsencrypt:/letsencrypt"
+ - "/var/run/docker.sock:/var/run/docker.sock:ro"
+ miniflux:
+ image: miniflux/miniflux:latest
+ container_name: miniflux
+ depends_on:
+ - db
+ expose:
+ - "8080"
+ environment:
+ - DATABASE_URL=postgres://miniflux:secret@db/miniflux?sslmode=disable
+ - RUN_MIGRATIONS=1
+ - CREATE_ADMIN=1
+ - ADMIN_USERNAME=admin
+ - ADMIN_PASSWORD=test123
+ - BASE_URL=https://miniflux.example.org
+ labels:
+ - "traefik.enable=true"
+ - "traefik.http.routers.miniflux.rule=Host(`miniflux.example.org`)"
+ - "traefik.http.routers.miniflux.entrypoints=websecure"
+ - "traefik.http.routers.miniflux.tls.certresolver=myresolver"
+ db:
+ image: postgres:latest
+ container_name: postgres
+ environment:
+ - POSTGRES_USER=miniflux
+ - POSTGRES_PASSWORD=secret
+ volumes:
+ - miniflux-db:/var/lib/postgresql/data
+volumes:
+ miniflux-db: