147 lines
3.9 KiB
Markdown
147 lines
3.9 KiB
Markdown
# Aukpad
|
|
|
|
Simple **live collaboration notepad** with websockets and FastAPI.
|
|
|
|
[Issue tracker](https://git.uphillsecurity.com/cf7/aukpad/issues) | `Libera Chat #aukpad`
|
|
|
|
- Status: Beta - expect minor changes.
|
|
- Instance/Demo: [aukpad.com](https://aufkpad.com/)
|
|
- Inspired by:
|
|
- [Rustpad](https://github.com/ekzhang/rustpad)
|
|
|
|
The goal is to keep it simple! For feature-rich solutions are [hedgedoc](https://github.com/hedgedoc/hedgedoc) or [codeMD](https://github.com/hackmdio/codimd).
|
|
|
|
---
|
|
|
|
## 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](https://git.uphillsecurity.com/cf7/aukpad/issues?q=&type=all&sort=&state=open&labels=12&milestone=0&project=0&assignee=0&poster=0&archived=false)
|
|
|
|
**Not planned**:
|
|
- accounts / RBAC
|
|
|
|
---
|
|
|
|
## Usage
|
|
|
|
**Creating pad with curl**
|
|
|
|
```bash
|
|
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**
|
|
|
|
```bash
|
|
# 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](https://uphillsecurity.com/gpg).
|
|
|
|
---
|
|
|
|
## Notes
|
|
|
|
- [Github Mirror available](https://github.com/CaffeineFueled1/aukpad)
|
|
|
|
---
|
|
|
|
## 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
|