shortn
Pure vanilla HTML/CSS/JS ✅ • Lightweight ✅ • Functional ✅ • No plaintext passwords ✅
Simple link shortener built with flask.
> [!WARNING]
> PLEASE CHANGE THE SECRET IN `app.py` BEFORE RUNNING IN PRODUCTION (this applies to the docker installation as well)
- [Installation (no docker)](#installation-no-docker)
- [Usage](#usage)
- [Installation (docker)](#installation-docker)
- [Users](#users)
- [TODOs](#todos)
## Installation (no docker)
```bash
git clone https://git.confest.im/boyan_k/shortn
pip install -r requirements.txt
```
### Usage
```bash
python manage_users.py init # to create the database
python manage_users.py add # to add a user
>>> Name: admin
>>> Password: *****
>>> Again: *****
python manage_users.py list # to list users
python manage_users.py remove --username # to remove a user
# Finally, running the app
python app.py # Running on http://localhost:49152
```
## Installation (docker)
This will init the database and create a user with the username `admin` and password `admin`.
```bash
docker compose up -d # remove -d for foreground, it is now running on http://localhost:49152
```
### Users
```bash
sudo docker exec -it shortn python src/manage_users.py add
sudo docker exec -it shortn python src/manage_users.py list
sudo docker exec -it shortn python src/manage_users.py remove --username
```
> [!NOTE]
> The database is **ephemeral** and will be lost when the container is removed. That is intentional.
## TODOs
- [x] basic UI (to add links)
- [x] basic auth for UI
- [x] sqlite3 to store links
- [x] responsive? (sorta)
- [x] dockerize