Subiendo Sublime POS 3 a servidor Ubuntu

Ya escribí un artículo indicando cómo usar Sublime POS 3 en internet de manera resumida, pero en este post te enseñaré una pequeña guía específica de cómo subirlo a un servidor con Linux Ubuntu alojado en DigitalOcean.

Te recomiendo leer primero el post que cité anteriormente y después volver a este. También te sugiero que veas cómo compilar el código fuente para que entiendas los conceptos aquí mostrados.

Requisitos del servidor

Yo pude compilar y subir exitosamente el sistema de ventas a un servidor con Linux Ubuntu que tenía medio gigabyte de RAM, agregando una partición de intercambio de 1 gigabyte antes de compilar.

Si tú tienes un servidor más potente o los recursos para rentarlo, entonces renta uno con al menos 2 GB de RAM, pero te repito que se puede lograr con medio GB y así te ahorras la renta.

Lado del cliente

Aquí me gusta aplicar un truco, y es que al final no importa en qué plataforma compiles el lado del cliente, por lo que puedes compilar en Windows o en tu servidor local.

La ventaja de esto es que ahorras recursos del servidor. En tu computadora local vas a tener un hardware más potente que el del servidor, por lo que puedes ahorrarte espacio y poder de cómputo compilando en tu computadora.

En mi caso compilé en mi computadora con Windows y dejé lista la carpeta dist para copiarla al servidor más adelante.

Nota: tú puedes subir la carpeta completa, instalar las dependencias en el servidor y compilar ahí mismo, solo te decía un truco.

Recuerda que compilar las dependencias con node necesita memoria y espacio de almacenamiento, cosas limitadas en un VPS.

Compilando lado del servidor

Lo que tenemos que hacer es subir la carpeta api al servidor, es decir, la contenedora del código de Go.

Luego instalamos el compilador de Go como se indica en https://parzibyte.me/blog/2019/01/09/instalar-go-linux-ubuntu-18/

También necesitamos gcc si vamos a usar el sistema con SQLite3, por lo que instalamos: sudo apt install gcc

Finalmente entramos a la carpeta (en mi caso se llama api) y compilamos:

go build -tags produccion

Usando Sublime POS 3 en Ubuntu Server

El paso anterior te dará un ejecutable llamado tiendas.

Lee el README para que sepas en dónde colocar la carpeta dist previamente compilada, y una vez que la misma (junto con los archivos SQL) estén en el mismo directorio que tiendas entonces puedes ejecutar el programa con: ./tiendas

Ahora averigua la IP del servidor, accede a http://ip_del_servidor:2106/static/ y todo debería funcionar sin problemas.

Ejecutar SPOS3 en segundo plano

Si quieres ejecutar el programa sin que la terminal se bloquee ni el proceso se detenga puedes correrlo en segundo plano así:

./tiendas >> ~/log_sublime_pos_3.log 2>&1 &

Eso va a ejecutar el programa en segundo plano y registrar todo en la carpeta home de tu usuario en el archivo log_sublime_pos_3.log.

Nota: si después quieres detenerlo, ejecuta un ps aux | grep tiendas y eso te debe dar el PID del programa (no te confundas con el PID del propio comando).

Una vez que lo tengas, detén el proceso con kill PID en donde PID es un número, el de la primera columna de la salida de ps.

Partición de intercambio

Nota: al compilar, a mí me dio un error por falta de memoria porque el servidor tenía 512 Megabytes de RAM. Primero apareció lo siguiente:

# github.com/mattn/go-sqlite3
gcc: fatal error: Killed signal terminated program as
compilation terminated.

Luego depuré un poco con dmesg y al final de la salida aparecía lo siguiente:

Out of memory: Killed process 13942 (as) total-vm:287948kB, anon-rss:280056kB, file-rss:0kB, shmem-rss:0kB, UID:1000 pgtables:592kB oom_score_adj:0

Lo solucioné agregando un swap temporal de 1GB.

No tengo una guía de cómo hacer eso pues hay varias por internet, yo seguí la que aparece en: https://www.digitalocean.com/community/tutorials/how-to-add-swap-space-on-ubuntu-20-04-es.

Conclusión

Para terminar te dejo con más tutoriales de Servidores y el enlace a la presentación del sistema de ventas gratuito.

Encantado de ayudarte


Estoy disponible para trabajar en tu proyecto, modificar el programa del post o realizar tu tarea pendiente, no dudes en ponerte en contacto conmigo.

No te pierdas ninguno de mis posts

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.

Dejar un comentario