# Software Stack ## Target Vertical(s) At first our efforts for creating a software stack are mainly targeted at the Micro-Cloud providers. The stack we make will be very much targeted at 'small groups' or 'individuals' using a large set of software that only has the options that make for a predictable and working set of tools. Since we expect the 'Public Organisations' to have very specific needs or request it might be hard to provide them with something that works fast. To give ourselves time to develop the complete set of hardware, software, documentation and procedures we will start out serving the Public Organisations vertical the traditional way. ## Software we MUST use There are a few 'must use' software packages: * Nix and NixOS * Mastodon * PeerTube * PixelFed * Matrix ### Nix and NixOS In our project plan we have stated that we will use Nix and NixOS for all our deployments and efforts. There is a number of reasons for this: * Nix promises to be fully reproducable. This will provide us with a stable way to deploy tested sets of software AND a way to revert changes easily. Debian, arch, rpm-based distri all do not provide us with this and it is of the highest importance that we do get this. * NixOS is 'upcoming' and 'hip' and 'happening'. The community is still not completly settled and there are tools that are still being developed and where we can actually help to develop the way things work. This will give our project value. * NixOS does already contain examples of deployments of several tools in the Fediverse. We can use these to further our project quickly. * If we do it right, we should get the maximum available speed of developing our system, since we don't have to redo stuff after we actually fixed it (at least this is what we hope). ### Mastodon Mastodon is one of the projects (the project?) that gives the Fediverse credibiliy. It is already used by millions of users and large organisations. The main challenge with Mastodon is that it's creators use Kubernetes to deploy it. There are instructions on how to deploy a 'simple' 'stand alone' version of Mastodon. The 'how do you deploy at scale' is hidden in 'helm-charts' however. Mastodon servers are not 'lightweight' services (for that we might better look at goToSocial) but we need to create a way to deploy mastodon servers for people that want to use this.