-
Notifications
You must be signed in to change notification settings - Fork 52
/
docker-compose.yml
110 lines (106 loc) · 4.24 KB
/
docker-compose.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
# Using version 3 to provide play-with-docker badge
# You can change to version 2 without breaking.
#version: '2'
version: '3'
services:
database:
# Don't upgrade PostgreSQL by simply changing the version number
# You need to migrate the Database to the new PostgreSQL version
image: postgres:16.4-alpine
#mem_limit: 256mb # version 2 only
#memswap_limit: 512mb # version 2 only
#read_only: true # not supported in swarm mode please enable along with tmpfs
#tmpfs:
# - /run/postgresql:size=512K
# - /tmp:size=256K
environment:
- POSTGRES_USER=hedgedoc
- POSTGRES_PASSWORD=password
- POSTGRES_DB=hedgedoc
volumes:
- database:/var/lib/postgresql/data
networks:
backend:
restart: always
# MySQL example
# Most of the documentation that applies to PostgreSQL applies also to MySQL
#database:
# # You should be able to upgrade MySQL without problems
# # but to make sure no even when a problem appears you
# # should have a backup
# image: mariadb:10
# environment:
# - MYSQL_USER=hedgedoc
# - MYSQL_PASSWORD=password
# - MYSQL_DATABASE=hedgedoc
# - MYSQL_ALLOW_EMPTY_PASSWORD=true
# volumes:
# - database:/var/lib/mysql
# # This config provides UTF-8 support to the database by default
# # If this config is not used, HedgeDoc breaks as it tries to write
# # UTF-8 to a latin database.
# - ./resources/utf8.cnf:/etc/mysql/conf.d/utf8.cnf
# networks:
# backend:
# restart: always
app:
# Uncomment the following section to build the image yourself:
#build:
# context: .
# dockerfile: debian/Dockerfile
# args:
# - "VERSION=master"
# - "HEDGEDOC_REPOSITORY=https://github.com/hedgedoc/hedgedoc.git"
image: quay.io/hedgedoc/hedgedoc:1.10.0
#mem_limit: 256mb # version 2 only
#memswap_limit: 512mb # version 2 only
#read_only: true # not supported in swarm mode, enable along with tmpfs
#tmpfs:
# - /tmp:size=10M
# # Make sure you remove this when you use filesystem as upload type
# - /hedgedoc/public/uploads:size=10M
environment:
# **DB_URL** is formatted like: <databasetype>://<username>:<password>@<hostname>:<port>/<database>
# Other examples are:
# - mysql://hedgedoc:password@database:3306/hedgedoc
# - sqlite:///data/sqlite.db (NOT RECOMMENDED)
# - For details see the official sequelize docs: http://docs.sequelizejs.com/en/v3/
- CMD_DB_URL=postgres://hedgedoc:password@database:5432/hedgedoc
# **DOMAIN** is the domain under which HedgeDoc will be available. Just the (sub)domain, no protocol or paths.
# You MUST change this if your instance should be available under another domain than "localhost", otherwise your
# instance may be broken.
# You can define only ONE domain.
- CMD_DOMAIN=localhost
# **PROTOCOL_USESSL** defines if generated links should be HTTPS URLs.
# This variable won't activate encryption on the listen port.
# Set this to true if your reverse proxy exposes your instance via HTTPS.
- CMD_PROTOCOL_USESSL=false
# **HSTS_ENABLE** defines if HSTS headers should be sent. Set this to true if you use HTTPS.
- CMD_HSTS_ENABLE=false
# **URL_ADDPORT** defines if generated links should contain the port.
# Set this to false if your reverse uses the default ports (443 for HTTPS or 80 for HTTP).
- CMD_URL_ADDPORT=true
volumes:
- uploads:/hedgedoc/public/uploads
ports:
# Ports that are published to the outside.
# The latter port is the port inside the container. It should always stay on 3000
# If you only specify a port it'll published on all interfaces. If you want to use a
# local reverse proxy, you may want to listen on 127.0.0.1.
# Example:
# - "127.0.0.1:3000:3000"
- "3000:3000"
networks:
backend:
restart: always
depends_on:
- database
# Define networks to allow best isolation
networks:
# Internal network for communication with PostgreSQL/MySQL
backend:
# Define named volumes so data stays in place
volumes:
# Volume for PostgreSQL/MySQL database
database:
uploads: