aukpad/README.md

3.9 KiB

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 > repeat curl 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