Skip to content

michaelchandrag/botfood-go

Repository files navigation

Installation

go mod tidy
source configs/.env

Deployment Production *use Supervisor to run background

cd /var/www/botfood-go
GOOS=linux GOARCH=amd64 go build -o build cmd/http-botfood/main.go
sudo supervisorctl reload

Supervisor configuration

[program:botfood-go]
directory=/var/www/botfood-go
command=/var/www/botfood-go/build/main
autostart=true
autorestart=true
stderr_logfile=/var/log/botfood-go/api.err
stdout_logfile=/var/log/botfood-go/api.log
startretries=3

Nginx Configuration

server {
    # listen 80;                # the port nginx is listening on
    server_name     goapi.botfood.id;    # setup your domain here

    gzip            on;
    gzip_types      text/plain application/xml text/css application/javascript;
    gzip_min_length 1000;

    location / {
        expires $expires;

        proxy_redirect                      off;
        proxy_set_header Host               $host;
        proxy_set_header X-Real-IP          $remote_addr;
        proxy_set_header X-Forwarded-For    $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto  $scheme;
        proxy_read_timeout          60m;
        proxy_connect_timeout       60m;
        proxy_pass                          http://127.0.0.1:3001;
    }

    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/api.botfood.id/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/api.botfood.id/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

}

server {
    
    if ($host = goapi.botfood.id) {
        return 301 https://$host$request_uri;
    } # managed by Certbot


    listen          80;
    server_name     goapi.botfood.id;
    return 404; # managed by Certbot

}


About

One of BotFood services build with Go programming language.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages