Sublime POS 3

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.

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

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.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Entradas recientes

Creador de credenciales web – Aplicación gratuita

Hoy te voy a presentar un creador de credenciales que acabo de programar y que…

1 semana hace

Desplegar PWA creada con Vue 3, Vite y SQLite3 en Apache

Ya te enseñé cómo convertir una aplicación web de Vue 3 en una PWA. Al…

2 semanas hace

Arquitectura para wasm con Go, Vue 3, Pinia y Vite

En este artículo voy a documentar la arquitectura que yo utilizo al trabajar con WebAssembly…

2 semanas hace

Vue 3 y Vite: crear PWA (Progressive Web App)

En un artículo anterior te enseñé a crear un PWA. Al final, cualquier aplicación que…

2 semanas hace

Errores de Comlink y algunas soluciones

Al usar Comlink para trabajar con los workers usando JavaScript me han aparecido algunos errores…

2 semanas hace

Esperar promesa para inicializar Store de Pinia con Vue 3

En este artículo te voy a enseñar cómo usar un "top level await" esperando a…

2 semanas hace

Esta web usa cookies.