Una guía práctica sobre cómo alojar tus propios servicios sin tener que gastar mucho dinero
Un poco de historia
Cuando era niño tenía muchos problemas para desplegar mis proyectos y hacerlos accesibles a través de la web. Esa es una de las razones por las que desarrollé un interés por las redes p2p.
Antes usaba heroku (2021-2022) para desplegar mis proyectos de Go hasta que dejaron de ofrecer alojamiento gratuito para proyectos simples. Después de eso empecé a planear algunas formas extrañas en las que podría desplegar mis proyectos y eran un desastre. Era joven y no tenía mucho dinero. Aunque tenía suficiente dinero para comprar snacks y otras cosas.
Ahí es cuando entra Cloudflare. Solo necesitas gastar menos que en un snack en un dominio que estés dispuesto a pagar. Y después de eso no necesitas hacer mucho.
Lo que necesitas
- Cloudflare (dominio, zero trust y cloudflared)
- Golang
- SHP
- git
- Una computadora con Linux (cualquier distro está bien, pero personalmente recomendaría lubuntu)
Cloudflare
Obviamente necesitarás crear una cuenta y hacer otras cosas en Cloudflare; para eso puedes encontrar muchos videos. Probablemente recomendaría este:
self hosting platform
Pero eso no es suficiente, esto solo funciona para que expongas un puerto al público, pero no ayuda con que los servicios se mantengan activos, ni despliega tus servicios. Para eso necesitarías saber usar systemd o simplemente evitar hacer eso, configurar un servicio simple de SHP y entrar al panel y hacer tus propias cosas.
SHP simplifica el proceso de desplegar tus servicios y mantenerlos activos sin tener que configurar ningún archivo de servicio después de que SHP haya sido desplegado correctamente. También puedes exponerlo a la red pública para que puedas acceder a él en cualquier parte del mundo, pero si haces eso me aseguraría de tener una contraseña muy buena.
Pasos
Instala y configura Golang; para eso solo necesitas agregarlo al
PATHClona el proyecto ejecutando este comando
git clone https://github.com/ranon-rat/self-hosting-platform.gitCuando hayas instalado
SHP, recuerda crear un archivo llamado.env.local. Debería verse asíPASSWORD=<crea una contraseña fuerte, no seas tonto> PORT=1234 # puedes especificar cualquier puerto, eso depende de tiCrea un archivo de servicio. Necesitas crear el archivo en este directorio
/etc/systemd/system/Aquí hay un ejemplo de cómo debería verse el archivo:# nombremos el archivo self-hosting-platform.service; si lo nombras de otra forma, tendrás que ejecutar comandos diferentes. [Unit] Description=Self Hosting Platform Go Service After=network.target [Service] Type=simple User=<tu usuario> # debes especificar dónde has instalado el directorio shp WorkingDirectory=<ruta a tu archivo> # Variables básicas Environment="HOME=/home/<tu usuario>" Environment="USER=<tu usuario>" # Normalmente instalo el binario de golang en el home de mi usuario, pero eso depende de ti. Environment="PATH=/home/<tu usuario>/go/bin:/usr/local/go/bin:/usr/bin:/bin:/usr/sbin:/sbin" # Cargar .bashrc antes de ejecutar ExecStartPre=/bin/bash -c 'source /home/<tu usuario>/.bashrc' ExecStart=/usr/bin/env go run main.go Restart=on-failure RestartSec=10 StandardOutput=journal StandardError=journal [Install] WantedBy=multi-user.targetEjecuta los comandos finales
# primero debes recargar el daemon systemctl --user daemon-reload # esto hará que se inicie automáticamente cuando arranque el sistema systemctl --user enable self-hosting-platform.service # esto iniciará el servicio inmediatamente systemctl --user start self-hosting-platform.service # esto solo te dirá el estado actual del servicio :) systemctl --user status self-hosting-platform.service