I am responsible for several interesting projects that I am proud of. I will divide them into two categories.
Active projects
Here I will list my active projects that I am working on.
ServerCommander
ServerCommander is an mobile application made for Android. It is free and open source with code available at GitHub. An App helps manage self-hosted homelab. The mobile client application is a great tool that allows you to manage your server quickly, conveniently, and almost anytime. It is compatible with Debian servers with Docker and/or YunoHost environment.
We can be proud of the fact that just a couple of days after the publication of the application, this one gained the fifth place on the “Bestsellers” list in the “Tools” category in Google Play Store.
ServerCommander can be found here:
Master’s thesis
Multi-criteria comparative analysis of package managers used for open source software distribution.
As fifth year CS student I will publish my master’s degree thesis. In this thesis I will analyze the Flatpak and Snap package managers. At this point I can’t say anything more.
My homelab
I love self-hosting. I started with not very powerful SBC Raspberry Pi3B+. It wasn’t really fast but it helped me to understand how networking works. I also had VPS with NextCloud instance. So I upgraded to better hardware with AMD64 processor (Mini PC) and I migrated all my services. I use a lot of cool open source projects like Nextcloud, HedgeDoc, Home Assistant and Wallabag. Also this webiste runs on this hardware (you can learn from How it Works).
This is how my home network looks like:
I then moved to newer hardware - an AsRock X300 Mini with a Ryzen 7 5700G processor and 32GB of RAM. I upgraded the storage and added redundancy for better security. I now use Scaleway S3 bucket for external backup of my data. Finally, I am using a much better ASUS router with OpenWRT, which is very good in terms of security. I have also started using DigitalOcean VPS with Uptime Kuma to check the health of my services. If something fails, I am immediately notified using Telegram Bot.
This setup is crazy fast and stable. Also security is much better and I my data are secure, so if something fails, I do not lose my data.
I use YunoHost environment on stable Debian 11. I really love using YunoHost and my next two projects are related to it. I am also trying to learn self-hosting with Docker but I don’t see this that easy and straight-forward like it is with YunoHost. But Docker is more powerful and gives more control.
My second device in the network is Raspberry Pi 3B+. I use it as Adblocker at DNS level and DHCP Server. Also this device is my Wireguard VPN server. RPi3B+ acts as the second home network device that is working right net to the router.
My third device is Orange Pi Zero 2. I use this SBC as a MongoDB print and database server, and also as a sort of test environment for checking the Snap package manager. Despite its small size, the Orange Pi Zero 2 is a really powerful piece of hardware with huge capabilities.
Personal backup script
It is my personal backup script in Bash that uses YunoHost commands. It backups my self-hosted apps every two days. It is open source and available at GitHub.
To run this script, I use cron
. This is how command looks like:
0 3 * * 2,4,6 bash <script_path>/yh-backup/main.sh
As You can see, script works really well. This is list of my backups created with this script:
- Check
yh-backup
repository here
yunoDnsUpdater
Dynamic DNS can be a real pain. It is possible to update IP address with DynDNS service but I just don’t want to use it. So I bought domain from Gandi because it has open API. This API can be used in YunoHost. Now I am updating my IP address with special yunohost
command. But sometimes YunoHost online services (especially ip.yunohost.org
) may not be available. So i created really basic bash script, that checks if YunoHost services are available. It is open source and available at GitHub.
Just like backup script, yunoDnsUpdater uses cron to refresh in every 5 minutes. This is how command looks like:
*/5 * * * * ./main.sh <domain>
- Check
yunoDnsUpdater
repository here
Completed projects
Here I will list my finished projects.
Hire babysitter system
Hire Babysitter System is my engineering thesis. It is written in PHP and Laravel. It also uses MariaDB database system and Bootstrap. It was deployed with Docker. This thesis was graded A.
- Check
hire-babysitter-system
repository here
Netflix like database
It was my university project. It is complete database project for service like Netflix. SQL code is optimized for PostgreSQL. Project was graded A.
Entity Relationship diagram of this database:
- Check
Netflix_database
repository here
Sunspot analysis
It was my university project. It is Jupyter notebook with analysis about sunspot. Code is written in Python. Project was graded A.
- Check
sunspot-analysis
repository here
You can see more of my projects here.