Keep your sensitive information out of chat logs, emails, and more with encrypted secrets. https://hemmelig.app
  • TypeScript 96.9%
  • JavaScript 0.9%
  • Go 0.9%
  • Dockerfile 0.3%
  • HTML 0.3%
  • Other 0.7%
Find a file
2026-03-23 21:05:55 +01:00
.github Upgrade gh action versions 2026-03-22 14:02:13 +01:00
.husky Migrate to prisma 7 2025-12-05 08:53:26 +01:00
api Target the entire route 2026-03-23 21:05:55 +01:00
cli Update index.ts 2026-02-03 16:51:35 +01:00
cli-go Update the version 2026-01-12 21:29:20 +01:00
docs Add support for OAuth to the Helm Chart (#487) 2026-02-10 08:22:42 +01:00
helm/hemmelig Add support for OAuth to the Helm Chart (#487) 2026-02-10 08:22:42 +01:00
prisma Add support for logo upload 2025-12-28 18:33:33 +01:00
public fix: make public content work 2025-07-01 21:49:23 +02:00
scripts Create a upgrade deps script 2025-12-13 10:56:52 +01:00
src Clean the code 2026-03-22 14:00:42 +01:00
tests/e2e Fix password change for users with weak passwords and improve validation error display 2026-02-10 11:56:08 +01:00
.dockerignore Improve docker build time 2025-12-03 19:02:07 +01:00
.editorconfig Initial MVP of Hemmelig.app 2021-06-13 18:11:25 +02:00
.gitignore Add basic e2e tests 2025-12-14 09:14:16 +01:00
.npmignore refactor: data fetching for the public paste page 2024-01-28 10:04:03 +01:00
.prettierignore Add to prettierignore 2025-12-04 19:39:37 +01:00
.prettierrc chore: run prettier format with new plugins 2024-01-27 18:46:31 +01:00
banner.png Update readme 2021-06-22 22:34:03 +02:00
CLAUDE.md Update docs 2026-02-05 22:01:42 +01:00
docker-compose.yml Use the new health endpoint 2025-12-13 17:19:31 +01:00
Dockerfile Make ARM build work 2025-12-20 15:11:36 +01:00
eslint.config.js Format 2025-12-04 20:05:17 +01:00
index.html Format 2025-12-04 20:05:17 +01:00
LICENSE Add a new saasy license 2025-12-03 18:00:16 +01:00
logo.png Update all logo images 2021-06-22 17:32:58 +02:00
logo.svg UX (#23) 2021-06-21 14:41:21 +02:00
logo_color.png Update all logo images 2021-06-22 17:32:58 +02:00
mise.toml Add cli as golang bin 2025-12-09 20:36:44 +01:00
package-lock.json Update lock 2026-03-23 18:47:34 +01:00
package.json Fix dependabot alerts 2026-03-22 14:48:40 +01:00
playwright.config.ts Add basic e2e tests 2025-12-14 09:14:16 +01:00
prisma.config.ts Make ARM build work 2025-12-20 15:14:49 +01:00
README.md Remove terces.cloud deployment section from README 2026-03-01 17:26:03 +01:00
server.ts Add managed feature to Hemmelig to fully control it from ENV vars 2025-12-20 19:42:29 +01:00
tailwind.config.js Format 2025-12-04 20:05:17 +01:00
tsconfig.app.json Format 2025-12-04 20:05:17 +01:00
tsconfig.json Format 2025-12-04 20:05:17 +01:00
tsconfig.node.json Format 2025-12-04 20:05:17 +01:00
vite.config.ts Ensure the app runs correctly with new deps 2025-12-13 11:10:10 +01:00

hemmelig

Hemmelig - Encrypted Secret Sharing

Share sensitive information securely with client-side encryption and self-destructing messages.

Try it onlineQuick StartDocker GuideConfiguration

Docker pulls Buy Me a Coffee

How It Works

  1. Enter your secret on hemmelig.app or your self-hosted instance
  2. Set expiration time, view limits, and optional password
  3. Share the generated link with your recipient
  4. The secret is automatically deleted after being viewed or expired

Zero-knowledge architecture: All encryption happens in your browser. The server only stores encrypted data and never sees your secrets or encryption keys.

Features

  • Client-side AES-256-GCM encryption - Your data is encrypted before leaving your browser
  • Self-destructing secrets - Configurable expiration and view limits
  • Password protection - Optional additional security layer
  • IP restrictions - Limit access to specific IP ranges
  • File uploads - Share encrypted files (authenticated users)
  • Rich text editor - Format your secrets with styling
  • QR codes - Easy mobile sharing
  • Multi-language support - Available in multiple languages
  • Webhook notifications - Get notified when secrets are viewed or burned (docs)

Quick Start

docker run -d \
  --name hemmelig \
  -p 3000:3000 \
  -v hemmelig-data:/app/database \
  -v hemmelig-uploads:/app/uploads \
  -e DATABASE_URL="file:/app/database/hemmelig.db" \
  -e BETTER_AUTH_SECRET="$(openssl rand -base64 32)" \
  -e BETTER_AUTH_URL="https://your-domain.com" \
  hemmelig/hemmelig:v7

Docker Compose

git clone https://github.com/HemmeligOrg/Hemmelig.app.git
cd Hemmelig.app

# Edit docker-compose.yml with your settings
docker compose up -d

See Docker Guide for detailed deployment instructions.

CLI

Create secrets directly from the command line:

# Download the binary (recommended for CI/CD)
curl -L https://github.com/HemmeligOrg/Hemmelig.app/releases/download/cli-v1.0.1/hemmelig-linux-amd64 -o hemmelig
chmod +x hemmelig

# Or install via npm
npm install -g hemmelig

# Create a secret
hemmelig "my secret message"

# With options
hemmelig "API key: sk-1234" -t "Production API Key" -e 7d -v 3

See CLI Documentation for all platforms and CI/CD integration examples.

Documentation

Development

npm install
npm run dev
npm run dev:api

Hetzner Cloud Referral

Hemmelig is proudly hosted on Hetzner Cloud. Hetzner provides reliable and scalable cloud solutions, making it an ideal choice for hosting secure applications like Hemmelig. By using our referral link, you can join Hetzner Cloud and receive €20/$20 in credits. Once you spend at least €10/$10 (excluding credits), Hemmelig will receive €10/$10 in Hetzner Cloud credits. This is a great opportunity to explore Hetzner's services while supporting Hemmelig.

License

O'Saasy License Agreement - Copyright © 2025, Bjarne Øverli.

This project is licensed under a modified MIT license that prohibits using the software to compete with the original licensor as a hosted SaaS product. See LICENSE for details.