What is Pika Cloud?
Pika Cloud is a simple cloud system hosted on my own server machine. I started to build it in 2018. At that time I just called it FMS – File Management System. Its main and only purpose was to make access to my server’s storage easier. I started development of version 1.0.0 on .NET Core 2.0. At first, there was only one component then, which is called Pika Core now. Whole brand, I mean Pika Cloud, was introduced far, far later. The system is fully open source solution, however it is not meant to be deployed or customized on any other server at the moment. But… nothing is impossible.
What’s more the name relates to a cute furry animal called “pika”. At the beginning, when I first called FMS that way, it was just a joke, but after some time I decided to use this as its real name. And here it is… Pika Core as a core of Pika Cloud.
Pika Cloud Architecture
At the moment, system contains of two web systems of my own creation and two 3rd party web applications, but without which system would be less functional behind the curtains. These first two applications are Pika Core and Pika Status. These two 3rd party web applications are Munin, which is monitoring system, and documentation based on MkDocs. Infrastructure of Pika Cloud consists of postgresql RDBMS instance, Redis cache, EFK stack – Elasticsearch Filebat Kibana – for log management and storage, and all this set up with Docker & Docker Compose behind Apache as a WWW Proxy.
Historically, FMS used SQLite database to store users and MySQL for permalink urls. Pika Core still used those data sources, but as of version 2.2 it was migrated to PostgreSQL RDBMS, so users and permalinks, and other data are now stored in the same RDBMS.
Please note that my portfolio site and this blog are not an internal part of Pika Cloud.
Future of Pika Cloud
I have some plans about Pika Cloud. Finish refactor of Pika Core and complete all major features for it. More details about those, I will contain in another blog post. Most important one is to build Pika Note and Pika Player – two other web systems to add more functionalities to Pika Cloud for public use. However, there are also plans related to infrastructure such as:
- adding automatation with Ansible for some simple tasks,
- add CI&CD with Github Action or CircleCI instead of bash scripts,
- probable extending Proxy to be a Load Balancer between instances of application,
- PostgreSQL with partitioning and backup PostgreSQL instance,
- adding SSO basing on Federation pattern,
- and probably more…
To go further, I always work on improving code’s quality with refactoring it. Last major refactor was in April, this is when I released actual production version: 2.4. I will write some more posts about distinct parts of Pika Cloud and separate posts about its infrastructure. Maybe those will be even separated series of posts. I will see.
For more details, relate to Github:
Each of my projects has its own codename. A codename is always a female name of which pronounciation I like.
Thus, Pika Core is Hannah, after my little sister and Pika Status is Monica after my girlfriend’s name.
Some photos for what I described above.
FMS v1.1 or 1.2 looked like:
Okay, I think it is all for this entry post about Pika Cloud. Stay tuned.
Or just go back to home page…