https://github.com/BoxingOctopus/joplin-server-docker-compose
A Docker Compose Workflow for deploying Joplin Server, the file sync web service for Joplin, a notebook/notetaking application
https://github.com/BoxingOctopus/joplin-server-docker-compose
certbot docker docker-compose joplin nginx postgresql
Last synced: 10 months ago
JSON representation
A Docker Compose Workflow for deploying Joplin Server, the file sync web service for Joplin, a notebook/notetaking application
- Host: GitHub
- URL: https://github.com/BoxingOctopus/joplin-server-docker-compose
- Owner: BoxingOctopus
- Created: 2021-04-18T06:53:45.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2022-11-11T18:45:11.000Z (about 3 years ago)
- Last Synced: 2024-07-29T19:05:45.476Z (over 1 year ago)
- Topics: certbot, docker, docker-compose, joplin, nginx, postgresql
- Homepage:
- Size: 5.86 KB
- Stars: 5
- Watchers: 2
- Forks: 5
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Docker Compose Workflow for Joplin Server
## Table of Contents
- [About](#about)
- [Getting Started](#getting_started)
- [Notes](#notes)
[Joplin](https://joplinapp.org) is an open-source note-taking/notebook app which allows synchronization of notebook data to a number of various sources, including its own self-hosted web service. This then, is a [Docker Compose](https://docs.docker.com/compose/) workflow which can be used to deploy Joplin Server as a stack of microservices (Joplin Server, PostgreSQL, Caddy).
This workflow is meant to be deployed remotely, through the use of Docker Contexts, the set up for which is shown below.
### Prerequisites
* Docker
* Docker Compose
### Production Deployment
1. Clone this repo onto the machine you'll be deploying Joplin onto.
2. Set up your deployment target as a Docker Context:
```bash
docker context create joplin-prod \
--default-stack-orchestrator=swarm \
--docker host=ssh://@
```
3. Fill out the details in `./environment/joplin.env`
3. Update the `server_name` directives along with the paths to the Certbot-issued SSL information in the included Nginx config file (`./nginx/joplin.conf`) with the correct hostname.
4. Once all these options are set, bring up the service stack using the following command:
```bash
DOCKER_CONTEXT=joplin-prod POSTGRES_PASSWD= docker-compose up -d
```
### Development
> NOTE: All the steps for Development are the same except for the following:
1. Use the default local docker context instead of the remote one
2. Change the `ENVIRONMENT` variable in `./config/joplin.env` to `development`
3. Deploy the stack using the following command:
```bash
POSTGRES_PASSWD=
```
## Notes
* For more information on Docker Contexts, check [the official documentation](https://docs.docker.com/engine/context/working-with-contexts/)
* This deployment stack is also published as a Docker App on Docker Hub (TODO)
* the development