290 lines
6.2 KiB
Markdown
290 lines
6.2 KiB
Markdown
# pi
|
||
|
||
## 更换软件源
|
||
```
|
||
sudo nano /etc/apt/sources.list
|
||
deb http://mirrors.aliyun.com/raspbian/raspbian/ stretch main contrib non-free rpi
|
||
sudo nano /etc/apt/sources.list.d/raspi.list
|
||
deb http://mirrors.ustc.edu.cn/archive.raspberrypi.org/debian/ stretch main ui
|
||
sudo apt-get update
|
||
sudo apt-get upgrade
|
||
```
|
||
|
||
## 安装git
|
||
|
||
安装git
|
||
`sudo apt-get install wget git-core`
|
||
|
||
创建新用户和用户组
|
||
`adduser --system --shell /bin/bash --gecos 'git version control by pi' --group --home /home/git git`
|
||
|
||
改密码
|
||
`passwd git`
|
||
|
||
切用户
|
||
`su git`
|
||
|
||
进文件夹
|
||
`cd /home/git`
|
||
|
||
初始化
|
||
```
|
||
mkdir test.git
|
||
cd test.git
|
||
git --bare init
|
||
```
|
||
|
||
用户:添加远程
|
||
`git remote add pi git@[your IP]:/home/git/test.git`
|
||
|
||
## 关机
|
||
sudo shutdown -h now
|
||
sudo halt
|
||
sudo poweroff
|
||
sudo init 0
|
||
|
||
## 重启
|
||
sudo reboot
|
||
shutdown -r now
|
||
shutdown -r 18:23:52 #定时重启在18点23分52秒关闭
|
||
|
||
## ngrok
|
||
下载
|
||
`wget 'hls.ctopus.com/sunny/linux_arm.zip?v=2'`
|
||
|
||
重命名
|
||
mv linux_arm.zip?v=2 linux_arm.zip
|
||
|
||
解压缩
|
||
`unzip linux_arm.zip`
|
||
|
||
切文件夹
|
||
`cd linux_arm`
|
||
|
||
启动!
|
||
` ./sunny clientid 213330227041`
|
||
|
||
后台运行
|
||
`setsid ./sunny clientid 213330227041 &`
|
||
|
||
移动到 /use/local/bin 目录下并给予可执行权限
|
||
```
|
||
sudo mv sunny /usr/local/bin/sunny
|
||
sudo chmod +x /usr/local/bin/sunny
|
||
```
|
||
|
||
编写启动脚本
|
||
`sudo vim /etc/init.d/sunny`
|
||
|
||
内容
|
||
```
|
||
#!/bin/sh -e
|
||
### BEGIN INIT INFO
|
||
# Provides: ngrok.cc
|
||
# Required-Start: $network $remote_fs $local_fs
|
||
# Required-Stop: $network $remote_fs $local_fs
|
||
# Default-Start: 2 3 4 5
|
||
# Default-Stop: 0 1 6
|
||
# Short-Description: autostartup of ngrok for Linux
|
||
### END INIT INFO
|
||
|
||
NAME=sunny
|
||
DAEMON=/usr/local/bin/$NAME
|
||
PIDFILE=/var/run/$NAME.pid
|
||
|
||
[ -x "$DAEMON" ] || exit 0
|
||
|
||
case "$1" in
|
||
start)
|
||
if [ -f $PIDFILE ]; then
|
||
echo "$NAME already running..."
|
||
echo -e "\033[1;35mStart Fail\033[0m"
|
||
else
|
||
echo "Starting $NAME..."
|
||
start-stop-daemon -S -p $PIDFILE -m -b -o -q -x $DAEMON -- clientid 213330227041 || return 2
|
||
echo -e "\033[1;32mStart Success\033[0m"
|
||
fi
|
||
;;
|
||
stop)
|
||
echo "Stoping $NAME..."
|
||
start-stop-daemon -K -p $PIDFILE -s TERM -o -q || return 2
|
||
rm -rf $PIDFILE
|
||
echo -e "\033[1;32mStop Success\033[0m"
|
||
;;
|
||
restart)
|
||
$0 stop && sleep 2 && $0 start
|
||
;;
|
||
*)
|
||
echo "Usage: $0 {start|stop|restart}"
|
||
exit 1
|
||
;;
|
||
esac
|
||
exit 0
|
||
```
|
||
|
||
测试
|
||
```
|
||
sudo chmod 755 /etc/init.d/sunny
|
||
sudo /etc/init.d/sunny start
|
||
sudo /etc/init.d/sunny start #启动
|
||
sudo /etc/init.d/sunny stop #停止
|
||
sudo /etc/init.d/sunny restart #重启
|
||
```
|
||
|
||
开机启动
|
||
```
|
||
cd /etc/init.d
|
||
sudo update-rc.d sunny defaults 90 #加入开机启动
|
||
sudo update-rc.d -f sunny remove #取消开机启动
|
||
```
|
||
|
||
### 安装gogs
|
||
|
||
创建新用户git 如果不创建会导致主账号登陆不了ssh
|
||
```js
|
||
//切换为root用户为了获取创建用户的权限
|
||
sudo su
|
||
|
||
//给root创建一个新的密码
|
||
sudo passwd root
|
||
|
||
//添加一个新用户(如用户名为csdn)
|
||
useradd csdn
|
||
|
||
//为该用户设定登录密码
|
||
passwd csdn
|
||
|
||
//为该用户指定命令解释程序(通常为/bin/bash)
|
||
usermod -s /bin/bash csdn
|
||
|
||
//为该用户指定用户主目录
|
||
usermod -d /home/csdn csdn
|
||
|
||
//查看用户的属性
|
||
cat /etc/passwd
|
||
|
||
// 切换到用户csdn
|
||
su csdn
|
||
|
||
// 再次切换到root用户(不要用sudo su, 而用su root)
|
||
su root
|
||
|
||
// 执行visudo命令
|
||
visudo
|
||
|
||
// 该命令实际上打开的是/etc/sudoers文件,修改该文件,在“root ALL=(ALL:ALL) ALL”这一行下面加入一行:
|
||
csdn ALL=(ALL:ALL) ALL
|
||
|
||
//ctrl+o(然后再按enter)保存,ctrl+c取消,ctrl+x退出
|
||
```
|
||
|
||
下载
|
||
`wget 'https://github.com/gogs/gogs/releases/download/v0.11.91/raspi_armv7.zip'`
|
||
|
||
解压
|
||
`unzip raspi_armv7.zip`
|
||
|
||
进文件夹
|
||
`cd gogs`
|
||
|
||
开启web服务
|
||
`./gogs web`
|
||
|
||
去3000端口进行设置,数据库设置成sqlite就行
|
||
|
||
在`/etc/systemd/system/gogs.service`新建文件
|
||
```
|
||
[Unit]
|
||
Description=Gogs (Go Git Service)
|
||
After=syslog.target
|
||
After=network.target
|
||
#After=mysqld.service
|
||
#After=postgresql.service
|
||
#After=memcached.service
|
||
#After=redis.service
|
||
|
||
[Service]
|
||
# Modify these two values and uncomment them if you have
|
||
# repos with lots of files and get an HTTP error 500 because
|
||
# of that
|
||
###
|
||
#LimitMEMLOCK=infinity
|
||
#LimitNOFILE=65535
|
||
Type=simple
|
||
User=git
|
||
Group=git
|
||
WorkingDirectory=/home/git/gogs
|
||
ExecStart=/home/git/gogs/gogs web
|
||
Restart=always
|
||
Environment=USER=git HOME=/home/git
|
||
|
||
[Install]
|
||
WantedBy=multi-user.target
|
||
```
|
||
|
||
更新 User、Group、WorkingDirectory、ExecStart 和 Environment 为相对应的值。其中 WorkingDirectory 为您的 Gogs 实际安装路径根目录。
|
||
|
||
[可选] 如果您 Gogs 安装示例使用 MySQL/MariaDB、PostgreSQL、Redis 或 memcached,请去掉相应 After 属性的注释。
|
||
|
||
然后通过 `sudo systemctl enable gogs` 命令激活,最后执行 `sudo systemd start gogs`,就可以做到开机启动了。
|
||
|
||
官方文件解释[docs]('https://gogs.io/docs/advanced/configuration_cheat_sheet')
|
||
|
||
重启 `sudo systemctl restart gogs`
|
||
|
||
### 安装nginx
|
||
|
||
安装
|
||
`sudo apt-get install nginx`
|
||
|
||
启动
|
||
`sudo /etc/init.d/nginx start`
|
||
|
||
修改配置
|
||
`sudo nano /etc/nginx/sites-available/default`
|
||
|
||
重启
|
||
`sudo /etc/init.d/nginx reload`
|
||
|
||
修改文件夹权限
|
||
`sudo chmod o+rw /etc/nginx`
|
||
|
||
```
|
||
server {
|
||
#SSL 访问端口号为 443
|
||
listen 443 ssl http2; #填写绑定证书的域名
|
||
server_name pi.powerrain.cn;
|
||
#证书文件名称
|
||
ssl_certificate 1_pi.powerrain.cn_bundle.crt;
|
||
#私钥文件名称
|
||
ssl_certificate_key 2_pi.powerrain.cn.key;
|
||
ssl_session_timeout 5m;
|
||
#请按照这个协议配置
|
||
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
|
||
#请按照这个套件配置,配置加密套件,写法遵循 openssl 标准。
|
||
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
|
||
ssl_prefer_server_ciphers on;
|
||
location / {
|
||
proxy_pass http://127.0.0.1:3000;
|
||
}
|
||
location /html {
|
||
root /var/www/html;
|
||
index index.html index.htm index.nginx-debian.html;
|
||
try_files $uri $uri/ =404;
|
||
}
|
||
}
|
||
|
||
server {
|
||
listen 80;
|
||
server_name pi.powerrain.cn;
|
||
|
||
location / {
|
||
proxy_pass http://127.0.0.1:3000;
|
||
}
|
||
location /html {
|
||
root /var/www/html;
|
||
index index.html index.htm index.nginx-debian.html;
|
||
try_files $uri $uri/ =404;
|
||
}
|
||
}
|
||
``` |