# 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; } } ``` # flask自启 * 写文件 ```sh #!/bin/sh cd /home/pi/data/ccb/backEnd . venv/bin/activate gunicorn ccb:app -c gunicorn.conf.py ``` * 给权限`sudo chmod 777 /home/pi/data/ccb/backEnd/start.sh` * 编辑开机自启`sudo nano /etc/rc.local` * 添加`/home/pi/data/ccb/backEnd/start.sh start` sudo chmod -R g+rwx /home/pi/data/owncloud sudo -u www-data ls -la /home/pi/data/owncloud sudo chown -R www-data:www-data /home/pi/data/owncloud sudo chown -R www-data:www-data /home/pi/data/owncloud/data/canary/files/Photos/animation/0 wget https://download.owncloud.org/community/owncloud-10.3.2.tar.bz2 sudo tar -xvf owncloud-10.3.2.tar.bz2 sudo rm -rf /home/pi/data/owncloud wget https://canary.moe/favicon.ico