RouteHUB is CMS for Link Shortening and Management. You can deploy and manage multiple shortening services, manage links with SEO and meta tags with crawl feature, create custom pages with grapesjs , implement analytics, and more.
RouteHub Service Dashboard is a comprehensive platform designed to manage and customize various aspects of your web applications. It provides a user-friendly interface for managing domains, hubs, links, and pages, along with extensive customization options for meta descriptions, SEO fields, and more.
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.
Zitadel is a prerequisite for RouteHub Service Dashboard. You can find the deployment example at Our Compose
cd docker/zitadel
docker-compose -f zitadel-docker-compose.yaml up -d
If you want to take analytics we recommend using Umami you can deploy the analytics service. You can find the deployment example at Our Compose
cd docker/umami
docker compose up -d --force-recreate
- NPM & NPX
- Tailwindcss
- GO 1.23
- Docker
- Docker Compose
It dosent matter if you deploy the client before or after the server. The client connection will be established when you attach the client to the server via dashboard.
A step by step series of examples that tell you how to get a development env running.
- Clone the repository:
git clone https://github.com/RouteHub-Link/RouteHub.Service.Dashboard.git
cd RouteHub.Service.Dashboard
- Install dependencies:
npm install
- Set up environment variables:
Copy the .copy.env
file to .env
and update the environment variables as needed.
cp .copy.env env
- Start the Database Instances:
make postgres
make cache-database
- Build the project:
make build
- Run the project:
make run
Open your browser and navigate to access the RouteHub Service Dashboard. You will be signed in with Zitadel instance. First of all create a domain this does not have to be a real domain. Creating a tags for Client Hubs. After the creation of the domain you can Attach the client to the server. If you did not deploy the client before you can do it now. For deployment you can check the Client Deployment. Or just run those commands:
# Clone the project
git clone https://github.com/RouteHub-Link/RouteHub.Client.Hub
cd RouteHub.Client.Hub
# Copy .env.development to .env
cp .env.development .env
# Run the services
docker compose -f "docker-compose.yml" up -d --build
Do not forget the env variables in the client.
After those steps you can attach the client to the server. You can see the client in the dashboard. You need to MQTT connection to the client for that compose you can use like this : 'localhost:1883' or your proxy link. If the connection is not established you have to make sure service can reach the client mqtt container.
After the connection is established you can see the client in the dashboard. You will redirect to the hub dashboard. You can create a new page, edit home page, create a new link and many more customization options.
Please setup zitadel instance and set the environment variables in the .env
file. Copy the .copy.env
file to .env
and update the environment variables as needed.
docker-compose up -d --build --force-recreate --remove-orphans
Then you can access the dashboard via the browser. at localhost:8080
The structure of network like this;
A big shoutout to all amazing cod work contributed this project Your creativity and are inspiring. Special thanks to all the sources of that fueled ideas and helped this vision to. also to the valuable references that guided us this journey
- Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
- This project developed as thinking Get Shit Done, Features first beauty later.
- Ask your self everytime is this the easiest way.
- I Recommend you check this document first : (The Grug Brained Developer)[https://grugbrain.dev/]
- Use Standart GO libraries as much as possible.
- Do not send requiest's with too big commits.
- @runaho - Idea & Initial work