Notea S3 Note-taking App

Self-Hosting Jun 2, 2021

Last Updated: 15th September 2021

WARNING: Minio's executable was moved without notice from /usr/bin/minio to /opt/bin/minio. The docker-compose below has been updated. If the old path is used with a new Minio image, Minio will not start. - 2021-09-15

What is Notea?

"Notea is a privacy-first, open-source note-taking application. It supports Markdown syntax, sharing, responsive and more." - https://cinwell.com/notea/

Live Demo: https://notea.cinwell.com/

Notea UI

Prerequisites:

Install

Notea does not require a database instead it relies on an AWS S3 or S3
Compatible bucket. We will be setting up Minio which is a self-hosted compatible S3 software. Instead of this, you could use AWS S3 (5GB Free) or another compatible provider such as Scaleway (75GB Free).

  1. Head to your home directory: cd
  2. Create a new directory for notea: mkdir notea && cd notea
  3. Create docker-compose.yaml: nano docker-compose.yaml

Use the following template:

version: '3'
services:
    notea:
      image: cinwell/notea
      container_name: notea
      environment:
        - STORE_ACCESS_KEY=CHANGEME1
        - STORE_SECRET_KEY=CHANGEME2
        - STORE_BUCKET=notea
        - STORE_END_POINT=https://minio.example.com
        - STORE_FORCE_PATH_STYLE=true
        - PASSWORD=CHANGEME3
        - COOKIE_SECURE=true
        - BASE_URL="https://notea.example.com"
      networks:
        default:
          ipv4_address: 10.10.10.16
    notea-s3:
      image: minio/minio
      container_name: notea-s3
      environment:
        MINIO_ACCESS_KEY: CHANGEME1
        MINIO_SECRET_KEY: CHANGEME2
      volumes:
        - ./minio-data:/data
      entrypoint: sh
      command: -c 'mkdir -p /data/notea && /opt/bin/minio server /data'
      networks:
        default:
          ipv4_address: 10.10.10.15
      
networks:
  default:
    external:
      name: dockernet

*When using images within your notes, the web app will directly query the S3 Bucket, therefore Minio should be set up with a hostname and reverse proxy.

  1. Spin it up: sudo docker-compose up -d
  2. Configure your reverse proxy
    Example Caddyfile config:
notea.example.com {
  reverse_proxy 10.10.10.16:3000
}

minio.example.com {
  reverse_proxy 10.10.10.15:9000
}

Enjoy!

Comments


Cover Image Credit: https://unsplash.com/@cathrynlavery

Tags