Categorygithub.com/elolpuer/DiaryBot
repositorypackage
0.0.0-20220805190635-9f2e464ddfc1
Repository: https://github.com/elolpuer/diarybot.git
Documentation: pkg.go.dev

# Packages

No description provided by the author

# README

Diary Bot

Link

Technology stack

Platform: Telegram Bots
Language: Go
Database: PostgreSQL
In-memory data store: Redis

Manual deployment

Connect to the server and it's configuration

ssh root@your_server_ip
adduser egorg
usermod -aG sudo egorg

Installing packages and creating a database

Postgres

sudo apt update 
sudo apt install postgresql postgresql-contrib
sudo -i -u postgres
psql 
create database somedb;
createuser egorg;
ALTER USER egorg WITH ENCRYPTED PASSWORD 'pass';
alter user egorg superuser createrole somedb;
alter database somedb owner to egorg;
\q
psql -h localhost -p 5432 -U egorg somedb
\i pathToBot/cfg/db.sql

Golang

sudo apt install golang
go version
mkdir ~/workplace/src/github.com/elolpuer
nano ~/.profile
export GOPATH=$HOME/workplace\
export PATH=$PATH:$GOPATH/bin\
export PATH=$PATH:$GOPATH/bin:/usr/local/go/bin
~/.profile

Redis

sudo apt install redis-server
supervised systemd
sudo systemctl restart redis.service
sudo systemctl status redis

Git

sudo apt install git

Clonning project from github and building

cd ~/workplace/src/github.com/elolpuer
git clone https://github.com/elolpuer/DiaryBot.git
go build main.go

Adding .env

In the DiaryBot directory create file .env
nano .env

Add this data to file

Token=
TokenDev=
PgHost=
PgPort=
PgUser=
PgPass=
PgDB=
SSLmode=require
RedisHost=
RedisPort=
RedisPassword=""

Running daemon

cd ../../etc/systemd/system/
sudo nano gosomething.service

Insert this:

[Unit]\
Description = Something Description

[Service]\
WorkingDirectory=/root/workplace/src/github.com/elolpuer/someproject\
ExecStart=/root/workplace/src/github.com/elolpuer/someproject/main\
User=root\
Group=root\
Restart=always

[Install]\
WantedBy=multi-user.target

Reboot and run daemon

sudo reboot
ssh root@your_server_ip
cd ../../etc/systemd/system/
sudo systemctl enable gosomething.service
sudo systemctl daemon-reload
sudo systemctl start gosomethint.service

Some screenshots