π» G(h)oST
GoST is a small project whose core component is the software STrack (Support Track). The application serves the purpose of visualizing key data of invoices from the Office Management Systems module Sales. In this way, viewers can gain valuable insights for managing their business.
The name G(h)oST is a tribute to Golang and a small blow against the obsolete OMS.
βοΈ How it works
Currently, the software creates a SQLite database that is populated with data through a specialized import process. A small web server then provides the data in processed form in simple charts and cards.
π― Project goals
- Persistent database for data copies
- Data preparation for quantity relations
- Provide data in web frontend
- Independent data import process
- Provide Windows installer
- Detailed display for invoices
- Option to configure GoST in frontend
πͺ Attribution
- Valentin Kaiser provides the go module go-dbase, which allows the import of data directly via STrack.
- Simon Nils Rach provided a way to import data and helped me analyze the OMS data structures.
π Installation guide
Build from source
From the root of the source tree, run:
go build -o gost.exe cmd/main.go
Make sure that CGO is operational!
Deploy with Docker
It is recommended to use docker-compose as it is very convenient. The following example shows a simple deployment without a proxy.
version: '3.9'
services:
gost:
image: plaenkler/gost:latest
container_name: gost
restart: unless-stopped
ports:
- 80:80
volumes:
- ./gost:/app/data
Configuration
At first startup, the program creates a config
directory and a config.yaml
file in it. In this document all settings of the application are stored.
Application:
DatabaseDriver: sqlite # Choose between "sqlite" or "mysql"
ImportOnStart: true # Import data on startup
ImportSchedule: '@daily' # Import schedule
Webserver:
Port: 80 # Port on which the router listens
UseTLS: false # Use TLS
Domain: example.com # Domain name (must be valid)
PathToTLS: ./data/certs # Path where TLS certificates are stored
OMS:
PathToOMS: ./data/oms # Path to OMS data
ArticleCategories: [] # Article categories to be shown in sales
MySQL:
Username: username # Database credentials
Password: password
Address: 127.0.0.1 # Database IP-Address
Port: 3306 # Database port
Name: gost # Database name
SQLite:
PathToDatabase: gost.db # Path to SQLite database file