Get the most out of your VPS with self-hosted opensource projects [part 1]

Mhd Hamza Shammout
5 min readJan 8, 2022
image source : websta.me

Whether you are looking to cut expenses for your start-up or you want to keep your management apps in one place to easy access here is some headlines of how to use your VPS to host several useful application that can help you to manage your team and projects.

Content :

1- Self-Hosted Software Development Tools :
- DeepfakeHttp.
- Lura Project.
- Self-Hosted Git Servers

2- Self-Hosted Project Management Apps :
- WeKan.
- FocalBoard.
- KanBoard.

Self-Hosted Software Development Tools

Software development tools is really handy when it comes to time and abstracting the process, and when it comes to small projects you don’t need that much of features you pay for in many tools available in the market, instead you can use the following to save some time and money in the development process (more will be listed in part 2).

here is some tools I use personally :

1- DeepfakeHttp :

image source : ubidots.com

DeepfakeHTTP is a web server developed by xnbox that uses HTTP dumps as a source for responses.
DeepfakeHTTP is a simple and easy to use solution to start to dump a backend server even before developing the sever-side of your project.
You can use it to make the front-end development easier or to deploy a demo of your product with dump API, Don’t forget that in the same time you’re making tasks easier for your backend developer by writing the dump file.

it’s as easy as the the following two steps :
1- write down the content of your dump route in a text file (which you can use lately to deploy tasks for the backend team):

GET /api/product/1 HTTP/1.1HTTP/1.1 200 OK
Content-Type: application/json
{
"id": 1,
"name": "product-1",
"in-stock": true,
"model": "PR-1"
}

2- start the server using the command (assuming that you downloaded the df.jar file) :

java -jar df.jar --dump <filename>

That’s not all, you can take a good look on the wide range available features in DeepfakeHttp

2- Lura Project :

image source : luraproject.org

Lura is an API Gateway framework designed for both cloud-native and on-prem setups.
In some situations Lura Project could really saves some work and be really useful for the development process.
One of these situations is when you’re consuming a content out of RESTFUL API that wasn’t designed for your UI Implementation (like micro-services), in this situation the developers will suffer from the complexity of the implementation and let’s not forget about the size of the different responses that are requested.
To simplify the problem and the solution lets pretend that you’re designing a product page that requires data from the following routes :

api/product/1api/reviews?product_id=1api/promosapi/product/1/related

the client now is requesting data from 4 different routes and 4 different http requests.
using Lura project, it will merge the responses in one endpoint and reduce the size and terrific used for the page

your.lura.server/api/product/1/page

Lura Project

3- Self-hosted git server :

image source : freebiesupply.com

When it comes to git servers there is variety of options, every single one has it’s own pros and cons, here will list of projects that caught my attention :

1- Gitlab CE (community edition) : GitLab is an open source end-to-end software development platform with built-in version control, issue tracking, code review, CI/CD, and more. Self-host GitLab on your own servers, in a container, or on a cloud provider .

2- Gitea : very light weight, cross-platform, easy to install and open source community managed fork of the well known Gogs.

3- Gitolite : Gitolite allows you to setup git hosting on a central server, with fine-grained access control and many more powerful features.

4- OneDev : All-In-One DevOps Platform, with Git Management, Issue Tracking, and CI/CD and many features.

5- GitBucket : GitHub clone powered by Scala with many useful feature and very easy installation (really easy).

Self-Hosted Project Management Apps

for the most of the small software startups you don’t need that complicated project management apps to run your team and projects toward a successful projects.
you can deploy the following apps really fast and start the show, So here is some Project Management Apps that I tested while looking for the most suitable app to run my team.

1- WeKan [Free] :

image source : wekan.github.io

An Open Source Kanban app, Using it I think it’s very useful for small-mid level businesses, Despite the UI it’s very light weight and easy to use, you can deploy it easily (peace of cake) using snap store on your Linux distro, or using the docker image.

Unlimited users and boards, customizable and realtime, all in one.

WeKan

2- FocalBoard [Free]:

image source : focalboard.com

FocalBoard is an opensource, self-hosted alternative to Trello, Notion and Asana (as the website says).

It has a very friendly UI/UX and don’t forget that the project is well documented with User’s Guide and Administrator’s Guide, and it provides trouble shooting for web-socket errors (which can sometimes be a real pain).

Focalboard

3- Kanboard [Free] :

image source : kanboard.org

Kanboard is as previous an opensource Kanban project management software.

What I find interesting in Kanboard is the simple filter query language that offers the flexibility in finding the required tasks.

don’t forget the documentations in several languages, Docker availability, 4 compatible databases based on your usage and many other useful features.

Kanboard

That was some of the project I came pass in my 3 week of search journey for the suitable one, if you want more you can let me know in the comments.

Having a VPS is great opportunity to discover the opensource - self-hosting community, and with great opportunity comes great responsibility to keep your VPS secured so keep in mind testing those services locally so you can decide which to use it or not, this will keep your VPS clean and secured from any messy actions you do while deploying and troubleshooting.

Thanks.

--

--