Puffin alternatives and similar software solutions
Based on the "Self-hosting Solutions" category.
Alternatively, view Puffin alternatives based on common mentions on social networks and blogs.
Budibase9.5 10.0 Puffin VS BudibaseBudibase is an open-source low code platform that helps you build internal tools in minutes 🚀
sovereign9.0 0.0 L5 Puffin VS sovereignA set of Ansible playbooks to build and maintain your own private cloud: email, calendar, contacts, file sync, IRC bouncer, VPN, and more.
Crater Invoice8.7 4.5 Puffin VS Crater InvoiceOpen Source Invoicing Solution for Individuals & Businesses
Sandstorm8.5 7.2 L2 Puffin VS SandstormSandstorm is a self-hostable web productivity suite. It's implemented as a security-hardened web app package manager.
Open and cheap DIY IP-KVM based on Raspberry PiOpen and inexpensive DIY IP-KVM based on Raspberry Pi
Vesta Control Panel7.9 5.3 L3 Puffin VS Vesta Control PanelVESTA Control Panel
OpenMediaVault7.8 8.6 L3 Puffin VS OpenMediaVaultopenmediavault is the next generation network attached storage (NAS) solution based on Debian Linux. It contains services like SSH, (S)FTP, SMB/CIFS, DAAP media server, RSync, BitTorrent client and many more. Thanks to the modular design of the framework it can be enhanced via plugins. OpenMediaVault is primarily designed to be used in home environments or small home offices, but is not limited to those scenarios. It is a simple and easy to use out-of-the-box solution that will allow everyone to install and administrate a Network Attached Storage without deeper knowledge.
DietPi7.8 9.9 Puffin VS DietPiLightweight justice for your single-board computer!
#<Sawyer::Resource:0x00007f938ce6e1d8>An open source, real-time monitoring tool with custom-monitor and agentless. Web, database, os, middleware, cloudnative, network and more. Aim to monitoring everything!
WikiSuite7.4 0.0 L2 Puffin VS WikiSuiteAn HTML5 management interface for KVM guests
TagSpaces7.3 7.7 L2 Puffin VS TagSpacesTagSpaces is an offline, open source, document manager with tagging support
FreeNAS7.3 9.9 Puffin VS FreeNASTrueNAS CORE/Enterprise/SCALE Middleware Git Repository [Moved to: https://github.com/truenas/middleware]
Ansible-NAS7.1 7.0 Puffin VS Ansible-NASBuild a full-featured home server or NAS replacement with an Ubuntu box and this playbook.
Yacht6.8 2.2 Puffin VS YachtA web interface for managing docker containers with an emphasis on templating to provide 1 click deployments. Think of it like a decentralized app store for servers that anyone can make packages for.
NextCloudPi6.7 9.5 Puffin VS NextCloudPi📦 Build code for NextcloudPi: Raspberry Pi, Odroid, Rock64, Docker, curl installer...
DockSTARTer6.5 6.1 Puffin VS DockSTARTerDockSTARTer helps you get started with running apps in Docker.
1Backend6.5 0.0 Puffin VS 1BackendRun your web apps easily with a complete platform that you can install on any server. Build composable microservices and lambdas.
Piratebox3.8 0.0 L5 Puffin VS PirateboxPirateBox Scriptcollection for running in Webserver
Syncloud3.8 5.2 L5 Puffin VS SyncloudRun popular services on your device with one click
Jump3.7 7.7 Puffin VS JumpJump is a self-hosted startpage and real-time status page for your server designed to be simple, stylish, fast and secure.
DPlatform3.5 0.0 Puffin VS DPlatformDeploy self-hosted apps easily: simple, bloat-free, independent installation
FreedomBone3.2 9.9 Puffin VS FreedomBoneHome server configuration based on Debian.
Libre.sh3.0 0.0 Puffin VS Libre.shMoved to https://lab.libreho.st/libre.sh/compose.libre.sh
xsrv2.9 7.3 Puffin VS xsrv[mirror] Install and manage self-hosted services/applications, on your own server(s) - ansible collection and utilities
Cloud Computer2.5 2.2 Puffin VS Cloud Computer☁️ The Cloud Native Computer
REI32.0 7.4 Puffin VS REI3REI3 - the open application platform
#<Sawyer::Resource:0x00007fc98721c818>OS-NVR is a lightweight extensible CCTV system. Mirror of Codeberg.
CharjaBox1.5 0.0 Puffin VS CharjaBoxAnsible based Homeserver setup using Docker
UBOS1.1 0.0 Puffin VS UBOSFile bugs against this project for apps you'd like to see on UBOS
CloudronEffortlessly self-host web apps on your server.
yunohostA server operating system aiming to make self-hosting accessible to everyone.
FreedomBoxA community project to develop, design and promote personal servers running free software for private, personal, communications.
FLAPLow maintenance framework to manage self-hosted services.
arkOSInstall arkOS to a dedicated device and host your own websites, email, files and more.
HomelabOSYour very own offline-first privacy-centric open-source data-center!
Static code analysis for 29 languages.
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of Puffin or a related project?
NOTE: The project is not maintained anymore, the code is here for historical / fork purposes.
The goal of the project is to allow average, tech-oriented user to run web applications with ease. The idea is to create an easy to host, technology agnostic private cloud. The ultimate aim is to achieve greater decentralization of web services, such as social networks, file sharing, blog or email.
While many other tools are looking at containers as a way to run massive applications, Puffin concentrates on lightweight ones, each serving just a handful of people.
You can chose to host the applications on Puffin managed platform or on your own server.
Live demo platform is available at puffin.rocks
Puffin consists of two main components - application catalog and interface that provides means to run the applications. Any of them can be used independently - you can run the applications from the catalog directly, and you can use the interface to run your own applications that are not present in the catalog.
Puffin is based on Docker containers and for orchestration is uses Docker Compose.
Software is written in Python 3, using Flask web microframework. PosttgreSQL database is used to store the data. Nginx is used as a reverse proxy.
To access installed applications from localhost you need to set-up local DNS. There are many alternative solutions to this problem, the simplest one is to add the following lines at the top of your /etc/resolv.conf file:
nameserver 127.0.0.1 options ndots:0
Which can be done by executing the following command as root:
echo -e "nameserver 127.0.0.1\noptions ndots:0\n$(cat /etc/resolv.conf)" > /etc/resolv.conf
Make sure that you disable your other local DNS server, such as dnsmasq, before running Puffin.
Clone git repository
Puffin application catalog is stored as git submodules. When cloning the repo make sure to use --recursive option:
git clone --recursive [email protected]:puffinrocks/puffin.git
Or if you have already cloned the repo then update the submodules in it:
git submodule update --init --recursive
Clone the repository and use Docker Compose:
Go to http://puffin.localhost to access Puffin. Log In as user "puffin", password "puffin". Emails sent from Puffin are accessible via embedded Mailhog server at http://mailhog.localhost.
If http://puffin.localhost is not accessible you can try connecting to Puffin via a port: http://localhost:8080. However, without DNS configured correctly, you won't be able to access the apps.
Puffin server is automatically reloaded on every code change thanks to reload. To rebuild the code after making more substantial change, such as modifying dependencies, run:
Puffin contains several convenience commands to upgrade the database, manage users, execute internal shell, etc. To get a complete list, run:
docker-compose run puffin --help
To deploy Puffin for private needs, for a single user or a limited number of users, use [docker-compose-example.yml](./docker-compose-example.yml) file as a basis:
cp docker-compose-example.yml docker-compose-production.yml
You need to change SERVER_NAME and VIRTUAL_HOST variables to point to your domain. You also need to set SECRET_KEY variable to a random value.
For a full list of configuration options see [puffin/core/config.py](puffin/core/config.py).
To send emails from Puffin and the applications you need to configure few environment variables before starting Puffin. It's probably easiest to register to an external email service to avoid being classified as spammer. The variables are (not all are obligatory, see [puffin/core/config.py](puffin/core/config.py) for more details):
MAIL_SERVER MAIL_PORT MAIL_USE_TLS MAIL_USE_SSL MAIL_USERNAME MAIL_PASSWORD MAIL_DEFAULT_SENDER MAIL_SUPPRESS_SEND
On public server you need to configure wildacard DNS record to point to your root domain and all its subdomains.
If you would like to deploy Puffin on a remote server, Docker Machine comes in handy. You can easily install Docker in the cloud or on your own server.
To instruct Docker to interact with remote server run:
eval "$(docker-machine env [machine-name])"
Finally you can run Puffin:
docker-compose -f docker-compose-production.yml up -d
Initially only "puffin" user with "puffin" password will be created - make sure to change the password before exposing puffin to the outside world. Later you can either allow other users to register themselves on your platform (via SECURITY_REGISTERABLE=True config setting) or create them manually:
docker-compose run puffin user create [login]
(The password will be the same as login, so it should be changed as soon as possible.)
Clustering is currently not supported, but you may run apps on a separate machine than Puffin server itself. To achieve that take a look on MACHINE_* options. You also won't need network sections in your docker-compose file, since the networks will be created automatically on the remote machine.
Application Update & Backup
Application versions are regularly updated. In order to assure than new version doesn't corrupt the data, an automatic backup of all volumes is performed on every application restart.
AGPL, see [LICENSE.txt](LICENSE.txt) for details.
*Note that all licence references and agreements mentioned in the Puffin README section above are relevant to that project's source code only.