Go
9
Вклад в тег
useradd -s /bin/bash <имя_пользователя>
su <имя_пользователя>
ssh-keygen -t rsa -C "<имя_пользователя>@<домен_сервиса>"
cat ~/.ssh/id_rsa.pub
cd ~
git clone ssh://______.git app
# здесь не буду расписывать, можно устанавливать через go get и т.д. способы отличаются
# для go get нужно прописать $GOPATH в .bash_profile
exit #выходим из-под юзера
nano /etc/systemd/system/<service_name>.service
[Unit]
Description=<description>
[Service]
Restart=always
RestartSec=10
EnvironmentFile=-/<service_path>/env
WorkingDirectory=/<service_path>/appDir
ExecStart=/<service_path>/appDir/appName
LimitNOFILE=524576
LimitNPROC=524576
User=<user>
Group=<userGroup>
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=<service_name>
[Install]
WantedBy=multi-user.target
systemctl start <имя_сервиса>
systemctl enable <имя_сервиса>
systemctl status <имя_сервиса>
Defaults:<имя_пользователя> !authenticate
<имя_пользователя> ALL=/usr/bin/systemctl restart <имя_сервиса>, /usr/bin/systemctl stop <имя_сервиса>, /usr/bin/systemctl start <имя_сервиса>, /usr/bin/journalctl
sudo journalctl -f -u <имя_сервиса>
sudo systemctl stop <имя_сервиса>
sudo systemctl start <имя_сервиса>
sudo systemctl restart <имя_сервиса>
server {
listen 80;
server_name site.ru;
client_max_body_size 256m;
access_log /var/log/nginx-site-acc;
error_log /var/log/nginx-site-err;
log_not_found off;
location ^~ / {
proxy_pass http://localhost:<порт_приложения>;
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_buffer_size 16k;
proxy_buffers 32 16k;
proxy_connect_timeout 300;
proxy_send_timeout 300;
proxy_read_timeout 300;
}
location ^~ /files {
alias /home/<имя_пользователя>/app/some_files;
}
}
package main
import (
"encoding/json"
"fmt"
"gopkg.in/mgo.v2"
)
type (
obj map[string]interface{}
arr []interface{}
)
func main() {
mongo, err := mgo.Dial("localhost")
if err != nil {
panic(err)
}
info := []obj{}
if err := mongo.DB("myDB").C("authors").Pipe(arr{
obj{"$match": obj{"banned": false}},
obj{"$lookup": obj{"from": "news", "localField": "_id", "foreignField": "authorID", "as": "news"}},
}).All(&info); err != nil {
fmt.Println("Error:", err)
}
printJSON(info)
}
func printJSON(t interface{}) {
j, _ := json.MarshalIndent(t, "", "\t")
fmt.Println(string(j))
}