app.py | ||
Dockerfile | ||
favicon.ico | ||
LICENSE | ||
README.md |
Aukpad
Simple live collaboration notepad with websockets and FastAPI.
Issue tracker | Libera Chat #aukpad
- Status: Beta - expect minor changes.
- Instance/Demo: aukpad.com
- Inspired by:
The goal is to keep it simple! For feature-rich solutions are hedgedoc or codeMD.
Features
Use cases:
- shared notepad on multiple machines
- collaboration on the same notepage with multiple people (notes, config, etc)
- config changes in aukpad >
curl -o app.conf https://aukpad.com/{pad_id}/raw
> change config in aukpad > repeatcurl
command
Available:
- live collab notepad
- line numbers
- custom path
{pad_id}
for more privacy - optional caching with valkey/redis
- pad creation with HTTP post requests with curl (see Usage)
{pad_id}/raw
HTTP endpoint
Ideas: Check out the open feature requests
Not planned:
- accounts / RBAC
Usage
Creating pad with curl
curl -X POST -d "Cheers" https://aukpad.com/ # string
curl -X POST https://aukpad.com --data-binary @- < file.txt # file
ip -br a | curl -X POST https://aukpad.com --data-binary @- # command output
Installation
Please use a reverse proxy and TLS in production!
Docker
Simple / Testing
docker run -p 127.0.0.1:8000:8000 git.uphillsecurity.com/cf7/aukpad:latest
Open 127.0.0.1:8000
Adv. example with Podman
# Create Pod
podman pod create --name aukpad-pod -p 127.0.0.1:8000:8000
# Start Valkey Container (or replace with redis)
podman run -d --name aukpad-cache \
--replace \
--pod aukpad-pod \
--restart=unless-stopped \
docker.io/valkey/valkey:7 \
--requirepass xeZNopyIeMMncqDFPHtJQwMwIathgMWo \
--maxmemory 2gb \
--maxmemory-policy allkeys-lru \
--save "" \
--appendonly no \
--bind 0.0.0.0 \
--protected-mode yes
# Start aukpad Container
podman run -d --name aukpad-app \
--replace \
--pod aukpad-pod \
--read-only \
--tmpfs /tmp \
--security-opt no-new-privileges:true \
--cap-drop ALL \
--user 1000:1000 \
-e USE_VALKEY=true \
-e VALKEY_URL=redis://:xeZNopyIeMMncqDFPHtJQwMwIathgMWo@localhost:6379 \
-e MAX_TEXT_SIZE=5 \
-e MAX_CONNECTIONS_PER_IP=20 \
-e RETENTION_HOURS=72 \
git.uphillsecurity.com/cf7/aukpad:latest
Tested only with Podman - Docker-Compose file might follows.
Enable support for web sockets in your reverse proxy of choice! - Nginx config example will be added at some point.
Environment Variables
The following environment variables can be configured:
Variable | Default | Description |
---|---|---|
USE_VALKEY |
false |
Enable Valkey/Redis caching. Set to true to enable |
VALKEY_URL |
redis://localhost:6379/0 |
Redis/Valkey connection URL |
MAX_TEXT_SIZE |
5 |
Maximum text size in MB (5MB default) |
MAX_CONNECTIONS_PER_IP |
10 |
Maximum concurrent connections per IP address |
RETENTION_HOURS |
48 |
How long to retain pads in hours after last access |
DESCRIPTION |
powered by aukpad.com |
Instance description shown on info page |
Security
For security concerns or reports, please contact via hello a t uphillsecurity d o t com
gpg.
Notes
License
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
- ✅ Commercial use
- ✅ Modification
- ✅ Distribution
- ✅ Patent use
- ✅ Private use
- ✅ Limitations
- ❌Trademark use
- ❌Liability
- ❌Warranty