Sto lavorando a un'applicazione web open source che ospiterò sul mio server e stima che la maggior parte degli utenti lo userà, ma voglio anche consentire agli utenti di eseguire facilmente l'applicazione. Il problema sembra essere che più cerco di rendere il mio sistema performante e scalabile più difficilmente riesco a farlo ospitare per qualcun altro.
La versione di self-hosting più semplice sarebbe quella di usare solo i binari che creano il proprio database SQLite e che funzionerebbero bene per gli utenti self-hosting ma per la mia istanza principale l'ho configurato con rails, nginx, postgres, sidekiq e redis . Quello non è banale da configurare e sarebbe più lavoro del necessario per gli utenti self-hosting.
Il mio tentativo di risolvere questo problema è stato quello di rendere tutto ancor più mobile e di utilizzare docker-compose per avviarlo, ma mi sono imbattuto in problemi relativi a come gestire i file di configurazione. Ognuno di questi servizi richiede le proprie configurazioni che attualmente ho memorizzato sul server host e ottengono il volume montato nel punto giusto. Questo mi ha lasciato con circa 5 diversi file di configurazione che sono diventati molto complicati quando per la maggior parte delle persone tutto ciò che vogliono configurare sono il nome del dominio e le chiavi API.
Ho difficoltà a pensare a un modo per renderlo semplice. L'unica idea che ho attualmente è venire con il mio formato di file di configurazione che richiede solo le opzioni necessarie e scrivere uno script per creare automaticamente tutte le altre configurazioni con valori predefiniti che la maggior parte delle persone vorrebbe.