gost

module
v0.0.0-...-d8db969 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 14, 2023 License: BSD-3-Clause

README ΒΆ

πŸ‘» G(h)oST

License Release Linters CodeQL Goreport Support me

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

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL