2023-03-24 12:46:47 -04:00
|
|
|
HedgeDoc 2 currently supports deployment using [Docker Compose](https://docs.docker.com/compose/install/).
|
|
|
|
|
|
|
|
The `docker` folder in the root of our repo contains all files required to get started, deploying
|
|
|
|
HedgeDoc 2, a PostgreSQL database and a Caddy reverse proxy.
|
|
|
|
|
|
|
|
## Development or local testing
|
|
|
|
|
|
|
|
To run HedgeDoc 2 locally, you do not need to change anything.
|
|
|
|
Caddy will automatically generate a TLS certificate for `hedgedoc2.localhost` using its internal CA.
|
|
|
|
After running `docker compose up`, visit [https://hedgedoc2.localhost](https://hedgedoc2.localhost).
|
|
|
|
You will have to accept the TLS warning in your browser the first time the page is opened.
|
|
|
|
|
|
|
|
## Production setup
|
|
|
|
|
|
|
|
!!! danger "HedgeDoc 2 is not yet production ready!"
|
|
|
|
This section explains how a production deployment of HedgeDoc 2 on a publicly accessible domain
|
|
|
|
might look in the future.
|
|
|
|
HedgeDoc 2 itself is not production ready yet, so only use these instructions to set up an
|
|
|
|
instance for testing with your friends.
|
|
|
|
|
|
|
|
For a production setup, first set a unique session secret with
|
2023-03-26 05:58:47 -04:00
|
|
|
`sed -i "s/change_me_in_production/$(pwgen -s 64)/" .env`.
|
2023-03-24 12:46:47 -04:00
|
|
|
|
|
|
|
Then open the `.env` file and edit `HD_BASE_URL`. It needs to contain the full URL of your instance,
|
|
|
|
like it will be entered in the browser. If you enter a URL starting with `https://`, Caddy will
|
|
|
|
automatically gather certificates via *Let's Encrypt* (or its internal CA in case of `.localhost` domains).
|
|
|
|
Make sure your host is accessible under the domain from `HD_BASE_URL`, otherwise Let's Encrypt
|
|
|
|
validation will fail.
|
|
|
|
|
|
|
|
Optionally, you can also change
|
|
|
|
|
|
|
|
- `HD_MEDIA_BACKEND`: If you do not want HedgeDoc to handle media uploads itself, configure another backend
|
|
|
|
here. For more information, [see the media backend docs](/config/#media).
|
|
|
|
- `HD_AUTH_*`: If you do not want to use the integrated auth system,
|
|
|
|
you can [consult the authentication docs](/config/#authentication) for details.
|