docs: update README
This commit is contained in:
49
README.md
49
README.md
@@ -1,3 +1,50 @@
|
|||||||
# spasteg
|
# spasteg
|
||||||
|
|
||||||
A secure, self-hostable "burn after reading" paste service written in gleam
|
A secure, self-hostable "burn after reading" paste service with ephemeral storage written in [Gleam](https://gleam.run).
|
||||||
|
|
||||||
|
## Features
|
||||||
|
|
||||||
|
- **Ephemeral pastes** — Content is deleted immediately after first view
|
||||||
|
- **No persistence** — All data stored in-memory only (restarts clear everything)
|
||||||
|
- **No accounts** — Zero-friction sharing without registration
|
||||||
|
- **Self-hosted** — Run your own instance with full control
|
||||||
|
- **Fast & lightweight** — Built on the BEAM VM for reliability and performance
|
||||||
|
- **Type-safe** — Written in Gleam, a type-safe functional language
|
||||||
|
|
||||||
|
## Quick Start
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Clone and build
|
||||||
|
git clone https://git.kharec.info/Kharec/spasteg.git
|
||||||
|
cd spasteg
|
||||||
|
gleam run
|
||||||
|
```
|
||||||
|
|
||||||
|
The server starts on `http://localhost:3000`.
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
1. Visit `http://localhost:3000`
|
||||||
|
2. Enter your text in the form
|
||||||
|
3. Click "Create Paste"
|
||||||
|
4. Share the generated URL
|
||||||
|
5. The paste auto-destructs after first access
|
||||||
|
|
||||||
|
## Architecture
|
||||||
|
|
||||||
|
- **Web framework**: Wisp (Gleam's web framework)
|
||||||
|
- **HTTP server**: Mist (HTTP/1.1 & HTTP/2)
|
||||||
|
- **HTML rendering**: Lustre (type-safe, declarative HTML generation)
|
||||||
|
- **Storage**: In-memory OTP actor (no disk persistence)
|
||||||
|
- **Key generation**: Cryptographically random 16-character keys
|
||||||
|
|
||||||
|
## Security Notes
|
||||||
|
|
||||||
|
- Pastes are stored **unencrypted** in server memory
|
||||||
|
- Data is **never written to disk**
|
||||||
|
- All data is lost on server restart
|
||||||
|
- Intended for ephemeral sharing only — do not store sensitive data
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
This project is licensed under the GNU General Public License v3.0 or later (GPLv3+). See the [LICENSE](LICENSE) file for details.
|
||||||
|
|||||||
Reference in New Issue
Block a user