# siteviewcounter [![Build Status](https://drone.deadbeef.codes/api/badges/steven/siteviewcounter/status.svg)](https://drone.deadbeef.codes/steven/siteviewcounter) A simple view counter for a website ### Requirements * Go * Docker * Docker Compose (Optional) or Kubernetes (Optional) ### Build Application ```bash go build -a -ldflags '-w' ``` ### Build Container Disclaimer! If you use this, you'll need to build the container yourself. I have a CICD pipeline setup, but my registry is used for my internal infrastructure only and is not publicly available. Because this is a staticly linked binary with no external runtime dependancies, the container literally only contains the binary file, keeping it clean and low in size (6.3MB). I never did understand why people include operating systems in containers. ```bash docker build -t siteviewconter:latest . ``` ### Example docker-compose.yml Create a docker-compose file ```yaml version: '3.7' services: counter: image: siteviewcounter:latest restart: always expose: - "8080" environment: - dbname=counter - dbhostname=counter-db - dbusername=root - dbpassword=CHANGEME - timezone=America/Edmonton counter-db: image: mariadb:10 restart: always expose: - "3306" volumes: - /data/counter-db:/var/lib/mysql environment: - MYSQL_RANDOM_ROOT_PASSWORD=yes - MYSQL_DATABASE=counter - TZ=America/Edmonton ``` ### Example front end usage You can pretty much implement this in your front end however you want, you just need to make a GET request to whatever endpoint the counter container is running at. This is how I use it though... ```html
```