( अल्प ) — A fast ⚡ self-hosted link 🔗 shortener.
alpa is a self-hosted (you run it on your servers) URL shortener which is fast and provides full control of the short links you create.
It takes this 👇
https://vasanthdeveloper.com/migrating-from-vps-to-kubernetes
and converts it into something like this 👇
https://vas.cx/fjby
Which is easier to remember and share across the internet.
- It is 🚀 super fast
- Your domain, your branding 👌
- Privacy friendly 🤗 & configurable
- Simple & 🎮 intuitive dashboard
I was using goo.gl back in 2016 and I was very impressed by it. It's simple dashboard & fast redirection were two things that were really attractive to me. alpa is inspired by goo.gl URL shortener.
Along with that, most popular URL shorteners are not self-hosted, which means that you'll share your data with others that use the service. To me, it was a concern about reliability, privacy and performance.
The quickest way to run alpa is through Docker Compose using only 3 steps:
STEP 1️⃣ Getting alpa
Once you have Docker Compose installed, clone this repository by running the following command 👇
git clone https://github.com/vsnthdev/alpa.git
STEP 2️⃣ Creating a configuration file
Enter into the alpa directory and create an API config by running 👇
cd ./alpa
cp ./api/config.example.yml ./api/config.yml
STEP 3️⃣ Starting alpa
Now all you need to do is, run the following command to start both alpa's app & the API.
docker-compose up -d
Financial funding would really help this project go forward as I will be able to spend more hours working on the project to maintain & add more features into it.
Please get in touch with me on Discord or Twitter to get fund the project even if it is a small amount 🙏
If you face trouble setting up alpa, or have any questions, or even a bug report, feel free to contact me through Discord. I provide support for alpa on my Discord server.
I will be happy to consult & personally assist you 😊
Pull requests are always welcome 👏
But it will be better if you can get in touch with me before contributing or raise an issue to see if the contribution aligns with the vision of the project.
ℹ️ Note: This project follows Vasanth's Commit Style for commit messages. We highly encourage you to use this commit style for contributions to this project.
This is a monorepo containing multiple projects. Below is a list of all the projects in this repository, what they do, and docs to building them 👇
Name | Description |
---|---|
@alpa/api | The core RESTful API 🛠️ that handles redirection in alpa. |
@alpa/app | Dashboard ✨ to interact with alpa's API. |
@alpa/docs | Programmatically ⚡ builds docs 📚 of all projects 📂 under alpa. |
You need to be at least on Node.js v17.4.0 or above and follow the below instructions to build all the projects 👇
- STEP 1️⃣ Clone this repository & enter into it (
cd ./alpa
) - STEP 2️⃣ Run
npm install
to get all dependencies & link projects together - STEP 3️⃣ To build all the projects & docs run
npm run build
Instead of pulling Docker images from DockerHub, you can build yourself by running 👇
npm run build:docker
⚠️ Warning: Make sure to delete Docker images pulled from DockerHub or a previous build, to prevent conflicts before running the above command.
Building the project generates artifacts on several places in the project. To delete all those artifacts (including docs), run the below command 👇
npm run clean
The alpa project is released under the AGPL-3.0-only.
Developed & maintained By Vasanth Srivatsa. Copyright 2022 © Vasanth Developer.
vsnth.dev · YouTube @vasanthdeveloper · Twitter @vsnthdev · Discord Vasanth Developer