linux设置

ubuntu相关设置

设置合盖不休眠

  • 编辑 logind 配置文件: 输入以下命令来编辑 logind.conf 文件:
    1
    sudo vim /etc/systemd/logind.conf
  • 修改配置文件: 在文件中找到以下两行(如果没有的话,可以手动添加):
    1
    2
    HandleLidSwitch=ignore
    HandleLidSwitchDocked=ignore
  • 重启 systemd: 修改后,你需要重启 systemd 服务以使改动生效。输入以下命令:
    1
    sudo systemctl restart systemd-logind

查看电池状态

1
upower -i /org/freedesktop/UPower/devices/battery_BAT0

查看网络连接状态

1
nmcli device status

自动挂载硬盘

  • 编辑/etc/fstab文件
    1
    sudo nano /etc/fstab
  • 在文件末尾添加一行,指定分区和挂载点。例如:
    1
    /dev/sdb  /mnt/mydrive  ext4  defaults  0  2
  • 重新加载 systemd 配置:
    1
    sudo systemctl daemon-reload
  • 测试挂载
    1
    sudo mount -a

设置smb共享

  • 首先切换到root用户
  • apt install samba -y安装samba
  • mkdir -p Share创建共享文件夹,并
  • chmod 0777 Share设置权限
  • 修改配置文件/etc/samba/smb.conf
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
      #在文件[global]中修改以下内容
    [global]
    security = user #密码访问的选项
    #在文件最后增加以下内容
    [Ubuntu] #共享名称
    comment = Samba #描述
    path = /home/wang/Share #共享路径
    public = no #是否允许匿名访问
    writable = yes #是否允许编辑、删除文件
    available = yes #共享是否可用
    browseable = yes #共享是否可以在网络上浏览
    valid users = wang #用户名
  • smbpasswd -a wang设置共享用户密码
  • systemctl restart smbd.service 重启smba
  • systemctl enable smbd.service 设置开机自启动
  • systemctl status smbd.service 查看smba状态

安装frps

    • 用wget下载fprs
      1
      wget https://github.com/fatedier/frp/releases/download/v0.5x.x/frp_0.5x.x_linux_amd64.tar.gz
  • tar -zxvf frp_0.5x.x_linux_amd64.tar.gz解压
  • cd frp_0.5x.x_linux_amd64进入文件目录
  • vim frps.toml修改配置文件
1
2
3
4
5
6
7
bindPort = 7000
vhostHTTPPort = 6001
auth.token = "123123"
webServer.addr = "0.0.0.0"
webServer.port = 7001
webServer.user = "admin"
webServer.password = "admin"
  • 配置frps启动服务
    • 在 /etc/systemd/system 目录下创建一个 frps.service 文件,用于配置 frps 服务。
    • vim /etc/systemd/system/frps.service写入内容
1
2
3
4
5
6
7
8
9
10
11
12
13
[Unit]
# 服务名称,可自定义
Description = frp server
After = network.target syslog.target
Wants = network.target

[Service]
Type = simple
# 启动frps的命令,需修改为您的frps的安装路径
ExecStart = /path/to/frps -c /path/to/frps.toml

[Install]
WantedBy = multi-user.target
  • sudo systemctl start frps启动frps
  • sudo systemctl stop frps停止frps
  • sudo systemctl restart frps重启frps
  • sudo systemctl status frps查看frps状态

安装frpc

  • 用wget下载fprc
    1
    wget https://github.com/fatedier/frp/releases/download/v0.5x.x/frp_0.5x.x_linux_amd64.tar.gz
  • tar -zxvf frp_0.5x.x_linux_amd64.tar.gz解压
  • cd frp_0.5x.x_linux_amd64进入文件目录
  • vim frpc.toml修改配置文件
  • 添加以下内容
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
serverAddr = "0.0.0.0"     #服务端Ip
serverPort = 7000 #服务端口
auth.token = "Shuaiwcm0-" #token

[[proxies]]
name = "lede"
type = "tcp"
localIP = "192.168.50.1"
localPort = 22
remotePort = 6000

[[proxies]]
name = "e49l"
type = "tcp"
localIP = "192.168.50.7"
localPort = 22
remotePort = 6003

[[proxies]]
name = "desk"
type = "tcp"
localIP = "192.168.50.112"
localPort = 3389
remotePort = 6002

[[proxies]]
name = "web"
type = "http"
localIP = "192.168.50.1"
localPort = 80
customDomains = ["yz.34476234.xyz"]
  • 复制frpc至/usr/local/bin/以方便启动
  • /usr/local/bin/frpc -c /home/wang/frp/frpc.toml手动启动测试
  • 设置开机自启
    • nano /etc/systemd/system/frpc.service创建服务文件
    • 添加如下内容
1
2
3
4
5
6
7
8
9
10
11
12
13
14
[Unit]
Description=FRP Client
After=network-online.target
Wants=network-online.target


[Service]
Type = simple
ExecStart=/usr/local/bin/frpc -c /home/wang/frp/frpc.toml
Restart=on-failure

[Install]
WantedBy=multi-user.target

  • systemctl daemon-reload重新加载Systemd配置
  • systemctl enable frpc.service设置开机启动
  • systemctl start frpc.service启动服务
  • systemctl status frpc.service检查服务状态

安装docker

  • 使用官方脚本一键安装(推荐):

    1
    curl -fsSL https://get.docker.com | sh
  • 命令行安装

    • 卸载旧版本(如有)
      1
      sudo apt remove docker docker-engine docker.io containerd runc
    • 更新软件源
      1
      sudo apt update
    • 安装依赖工具
      1
      sudo apt install apt-transport-https ca-certificates curl gnupg
    • 添加 Docker 官方 GPG 密钥
      1
      curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
    • 添加 Docker 仓库
      1
      echo  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
    • 安装
      1
      Docker sudo apt update sudo apt install docker-ce docker-ce-cli containerd.io
  • 允许普通用户运行 Docker

    • 将用户加入 docker 用户组
    1
    sudo usermod -aG docker $USER
    • 立即生效用户组变更
    1
    newgrp docker
  • 3. 验证权限

    1
    docker run hello-world

安装immich

  1. 创建工作目录
    创建一个目录用于存放 Immich 的配置文件和数据:
    mkdir ~/immich cd ~/immich
  2. 下载官方配置文件
    从 Immich 的 GitHub 仓库获取最新的 docker-compose.yml 和 .env 示例文件:
    1
    2
    wget https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
    wget -O .env https://github.com/immich-app/immich/releases/latest/download/example.env
  3. 编辑 .env 文件
    nano .env
  • 需要修改的关键项:

    • UPLOAD_LOCATION:设置照片和视频的存储路径,例如:
      1
      2
      3
      UPLOAD_LOCATION=/home/user/immich/uploads
      mkdir -p /home/user/immich/uploads
      chmod -R 755 /home/user/immich/uploads
    • DB_PASSWORD:设置数据库密码,例如:
      DB_PASSWORD=your_secure_password
    • IMMICH_VERSION:默认是 release,表示最新稳定版。如果需要特定版本,可以指定,例如 v1.117.0。
  • 其他可选配置:

    • DB_DATA_LOCATION:数据库存储路径,默认是 ./postgres,可以改为绝对路径。
    • TZ:设置时区,例如 Asia/Shanghai。
  • 保存并退出(Ctrl+O, Enter, Ctrl+X)。

  1. 检查 docker-compose.yml
  • 通常无需修改 docker-compose.yml,但可以确认以下内容:
    • 服务包括 immich-server、immich-machine-learning、redis 和 database。
    • 端口映射默认是 2283:2283,如果需要更改外部端口(例如改为 8080),修改:
      ports: - "8080:2283"
  1. 启动 Immich
  • 拉取镜像并启动所有服务:
    1
    2
    docker compose pull 
    docker compose up -d
  1. 验证安装
  • 检查容器状态:
    docker compose ps
    确保所有服务(immich-server, immich-machine-learning, redis, database)状态为 Up。
  • 查看日志确认无错误:
    docker compose logs
  1. 访问 Immich
  • 在浏览器中打开:http://你的服务器IP:2283(如果改了端口,用新端口)。
  • 默认会进入注册页面,创建管理员账户。

更新Immich

  1. 备份数据
  • 在升级之前,强烈建议备份你的数据,以防万一出现问题。Immich 的数据主要包括:
    • 媒体文件:存储在 UPLOAD_LOCATION 指定的目录(通常在 .env 文件中定义)。
    • 数据库:存储在 DB_DATA_LOCATION 指定的目录(通常是一个 Docker 卷或本地路径)。
  • 你可以手动复制这些目录到安全位置,或者使用以下命令备份 Docker 卷(如果使用卷存储):
    1
    2
    docker volume ls # 查看所有卷,找到与 Immich 相关的卷  
    docker run --rm -v immich_postgres:/data -v ./backup:/backup busybox sh -c "cp -a /data/. /backup/"

    将 immich_postgres 替换为实际的数据库卷名称。

  1. 查看当前版本和发布说明
  • 检查你当前运行的 Immich 版本,可以通过 Web 界面(“设置”页面)或查看 .env 文件中的 IMMICH_VERSION。
  • 访问 Immich 的 GitHub Releases 页面,查看最新版本的发布说明。注意是否有重大变更(breaking changes),这些可能需要额外配置或手动干预。
  1. 进入 Immich 部署目录
    升级需要在包含 docker-compose.yml 和 .env 文件的目录中操作。假设你的 Immich 部署在 ~/immich:
    cd ~/immich-app
  2. 停止当前服务
    停止所有正在运行的 Immich 容器:
    docker compose down
  3. 拉取最新镜像
    Immich 使用 Docker 镜像部署,拉取最新版本的镜像:
    docker compose pull
    这会下载 docker-compose.yml 中定义的最新镜像(默认情况下,镜像标签为 release,始终指向最新稳定版)。如果你在 .env 中指定了特定版本(例如 IMMICH_VERSION=v1.94.1),需要手动更新为目标版本号,例如 v1.117.0。
  4. 更新配置文件(如果需要)
  • 检查新版本的发布说明,看看 docker-compose.yml 或 .env 文件是否有变更。例如,新版本可能引入新的环境变量或修改服务配置。
  • 如果需要更新,可以从 Immich 最新发布页面 下载最新的 docker-compose.yml 文件,并与当前文件对比,合并你的自定义配置(例如卷路径、端口等)。
    1
    wget -O docker-compose.yml https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
  1. 启动新版本
    docker compose up -d
    这会以后台模式启动所有容器,-d 表示在后台运行。
  2. 验证升级
  • 检查容器状态,确保所有服务正常运行:
    docker compose ps
  • 查看日志,确认没有错误:
    docker compose logs
  • 访问 Immich 的 Web 界面(通常是 http://你的服务器IP:2283),确认版本已更新且数据完好。
  1. 清理旧镜像(可选)
    升级后,旧的 Docker 镜像可能会占用空间,可以清理:
    docker image prune
  2. 注意事项
  • 重大变更:如果跳过了多个版本(例如从 v1.94.1 到 v1.117.0),可能需要逐步升级,逐个版本检查发布说明并执行必要的迁移步骤。
  • 自动化工具:不建议使用 Watchtower 等自动更新工具,因为 Immich 经常有重大变更,自动更新可能导致意外问题。
  • 权限问题:如果遇到权限错误,确保以正确用户运行命令(可能需要 sudo)。
  • 示例
    假设你的 .env 文件中 IMMICH_VERSION=release,升级命令如下:
    1
    2
    3
    4
    5
    cd ~/immich 
    docker compose down
    docker compose pull
    docker compose up -d
    docker compose logs --follow # 查看日志
    升级完成后,你的 Immich 应该运行最新版本,同时保留所有数据。如果有任何问题,可以回滚到备份并排查日志。