cryptgeon/README.md

3.5 KiB
Raw Blame History

logo

discord docker pulls Docker image size badge Latest version
Cryptgeon - Securely share self-destructing notes | Product Hunt

About?

cryptgeon is a secure, open source sharing note service inspired by PrivNote

Demo

Check out the demo and see for yourself https://cryptgeon.nicco.io.

Features

  • server cannot decrypt contents due to client side encryption
  • view and time constraints
  • in memory, no persistence
  • obligatory dark mode support

How does it work?

each note has a 512bit generated id that is used to retrieve the note. data is stored in memory and never persisted to disk.

Screenshot

screenshot

Deployment

https is required otherwise browsers will not support the cryptographic functions.

Docker

Docker is the easiest way. There is the official image here.

# docker-compose.yml

version: '3.7'

services:
  memcached:
    image: memcached:1-alpine
    entrypoint: memcached -m 128 # Limit to 128 MB Ram, customize at free will.

  app:
    image: cupcakearmy/cryptgeon:latest
    depends_on:
      - memcached
    ports:
      - 80:5000

NGINX Proxy

See the examples/nginx folder. There an example with a simple proxy, and one with https. You need to specify the server names and certificates.

Traefik 2

Assumptions:

  • External proxy docker network proxy
  • A certificate resolver le
  • A https entrypoint secure
  • Domain name example.org
version: '3.8'

networks:
  proxy:
    external: true

services:
  memcached:
    image: memcached:1-alpine
    restart: unless-stopped
    entrypoint: memcached -m 128 # Limit to 128 MB Ram, customize at free will.

  app:
    image: cupcakearmy/cryptgeon:latest
    restart: unless-stopped
    depends_on:
      - memcached
    networks:
      - default
      - proxy
    labels:
      - traefik.enable=true
      - traefik.http.routers.cryptgeon.rule=Host(`example.org`)
      - traefik.http.routers.cryptgeon.entrypoints=secure
      - traefik.http.routers.cryptgeon.tls.certresolver=le

Development

  1. Clone
  2. run npm i in the root and and client client/ folders.
  3. Run npm run dev to start development.

Running npm run dev in the root folder will start the following things

  • a memcache docker container
  • rust backend with hot reload
  • client with hot reload

You can see the app under localhost:3000.

Attributions

Icons made by freepik from www.flaticon.com