- JavaScript 66.4%
- HTML 20.5%
- CSS 12.8%
- Dockerfile 0.3%
| docs | ||
| lib | ||
| static | ||
| templates | ||
| tests | ||
| .editorconfig | ||
| .gitignore | ||
| .prettierrc | ||
| compose.yml.example | ||
| Containerfile | ||
| CONTRIBUTING.md | ||
| COPYING | ||
| csrf_tokens.js | ||
| main.js | ||
| package.json | ||
| purple.env.example | ||
| README.md | ||
| routes.js | ||
Purple
A purple Fedi client :3
Warning
This is a hobby project developed for fun. I don't really know what I'm doing when it comes to software security (or anything really). There is no warranty or guarantees of any kind; if you want to run a public instance, you are doing so at your own risk. Also it's very much work-in-progress, expect issues and many missing features. Contributions welcome though!
Features
- No external dependencies
- No browser-side Javascript
- uh... it's purple?
Getting started
Requirements
This software has no dependencies other than Node.js.
Starting the server
Run this command to start Purple:
node main.js
This starts the server on port 3030 by default. Open http://localhost:3030/ in a browser to use.
Configuration
Purple reads configuration from file purple.env. If the file does not
exist, default values are used instead, which are fine for local testing or
development.
Copy the example purple.env.example file:
cp purple.env.example purple.env
Environment variables can also be used directly:
PURPLE_PORT=3030 node main.js
Running Purple with Docker/Podman
Requirements
Either Docker or Podman is required.
The packages docker-compose/podman-compose are needed to use compose files.
Substitute docker with podman in the examples if using Podman.
Starting the server (with compose)
Copy the example compose.yml.example file:
cp compose.yml.example compose.yml
Edit the default environment variables, then, run this command to start Purple:
docker compose up -d
Starting the server (without compose)
Build the container image:
docker build -t purple:latest -f Containerfile .
Then, run this command to start Purple:
docker run -d -p 127.0.0.1:3030:3030 --name purple \
--env "PURPLE_PRODUCTION=1" \
--env "PURPLE_PUBLIC_ADDRESS=https://purple.example.com" \
purple:latest
🏳️🌈 2026 All gay reserved 🏳️⚧️