ubuntu相关设置
设置合盖不休眠
- 编辑 logind 配置文件: 输入以下命令来编辑 logind.conf 文件:
1
sudo vim /etc/systemd/logind.conf
- 修改配置文件: 在文件中找到以下两行(如果没有的话,可以手动添加):
1
2HandleLidSwitch=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
安装sambamkdir -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
重启smbasystemctl 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
- 用wget下载fprs
tar -zxvf frp_0.5x.x_linux_amd64.tar.gz
解压cd frp_0.5x.x_linux_amd64
进入文件目录vim frps.toml
修改配置文件
1 | bindPort = 7000 |
- 配置frps启动服务
- 在
/etc/systemd/system
目录下创建一个frps.service
文件,用于配置 frps 服务。 vim /etc/systemd/system/frps.service
写入内容
- 在
1 | [Unit] |
sudo systemctl start frps
启动frpssudo systemctl stop frps
停止frpssudo systemctl restart frps
重启frpssudo 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 | serverAddr = "0.0.0.0" #服务端Ip |
- 复制frpc至
/usr/local/bin/
以方便启动 /usr/local/bin/frpc -c /home/wang/frp/frpc.toml
手动启动测试- 设置开机自启
nano /etc/systemd/system/frpc.service
创建服务文件- 添加如下内容
1 | [Unit] |
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
- 创建工作目录
创建一个目录用于存放 Immich 的配置文件和数据:mkdir ~/immich cd ~/immich
- 下载官方配置文件
从 Immich 的 GitHub 仓库获取最新的 docker-compose.yml 和 .env 示例文件:1
2wget 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 - 编辑 .env 文件
nano .env
需要修改的关键项:
- UPLOAD_LOCATION:设置照片和视频的存储路径,例如:
1
2
3UPLOAD_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。
- UPLOAD_LOCATION:设置照片和视频的存储路径,例如:
其他可选配置:
- DB_DATA_LOCATION:数据库存储路径,默认是 ./postgres,可以改为绝对路径。
- TZ:设置时区,例如 Asia/Shanghai。
保存并退出(Ctrl+O, Enter, Ctrl+X)。
- 检查 docker-compose.yml
- 通常无需修改 docker-compose.yml,但可以确认以下内容:
- 服务包括 immich-server、immich-machine-learning、redis 和 database。
- 端口映射默认是 2283:2283,如果需要更改外部端口(例如改为 8080),修改:
ports: - "8080:2283"
- 启动 Immich
- 拉取镜像并启动所有服务:
1
2docker compose pull
docker compose up -d
- 验证安装
- 检查容器状态:
docker compose ps
确保所有服务(immich-server, immich-machine-learning, redis, database)状态为 Up。 - 查看日志确认无错误:
docker compose logs
- 访问 Immich
- 在浏览器中打开:http://你的服务器IP:2283(如果改了端口,用新端口)。
- 默认会进入注册页面,创建管理员账户。
更新Immich
- 备份数据
- 在升级之前,强烈建议备份你的数据,以防万一出现问题。Immich 的数据主要包括:
- 媒体文件:存储在 UPLOAD_LOCATION 指定的目录(通常在 .env 文件中定义)。
- 数据库:存储在 DB_DATA_LOCATION 指定的目录(通常是一个 Docker 卷或本地路径)。
- 你可以手动复制这些目录到安全位置,或者使用以下命令备份 Docker 卷(如果使用卷存储):
1
2docker volume ls # 查看所有卷,找到与 Immich 相关的卷
docker run --rm -v immich_postgres:/data -v ./backup:/backup busybox sh -c "cp -a /data/. /backup/"将 immich_postgres 替换为实际的数据库卷名称。
- 查看当前版本和发布说明
- 检查你当前运行的 Immich 版本,可以通过 Web 界面(“设置”页面)或查看 .env 文件中的 IMMICH_VERSION。
- 访问 Immich 的 GitHub Releases 页面,查看最新版本的发布说明。注意是否有重大变更(breaking changes),这些可能需要额外配置或手动干预。
- 进入 Immich 部署目录
升级需要在包含 docker-compose.yml 和 .env 文件的目录中操作。假设你的 Immich 部署在 ~/immich:cd ~/immich-app
- 停止当前服务
停止所有正在运行的 Immich 容器:docker compose down
- 拉取最新镜像
Immich 使用 Docker 镜像部署,拉取最新版本的镜像:docker compose pull
这会下载 docker-compose.yml 中定义的最新镜像(默认情况下,镜像标签为 release,始终指向最新稳定版)。如果你在 .env 中指定了特定版本(例如 IMMICH_VERSION=v1.94.1),需要手动更新为目标版本号,例如 v1.117.0。 - 更新配置文件(如果需要)
- 检查新版本的发布说明,看看 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
- 启动新版本
docker compose up -d
这会以后台模式启动所有容器,-d 表示在后台运行。 - 验证升级
- 检查容器状态,确保所有服务正常运行:
docker compose ps
- 查看日志,确认没有错误:
docker compose logs
- 访问 Immich 的 Web 界面(通常是 http://你的服务器IP:2283),确认版本已更新且数据完好。
- 清理旧镜像(可选)
升级后,旧的 Docker 镜像可能会占用空间,可以清理:docker image prune
- 注意事项
- 重大变更:如果跳过了多个版本(例如从 v1.94.1 到 v1.117.0),可能需要逐步升级,逐个版本检查发布说明并执行必要的迁移步骤。
- 自动化工具:不建议使用 Watchtower 等自动更新工具,因为 Immich 经常有重大变更,自动更新可能导致意外问题。
- 权限问题:如果遇到权限错误,确保以正确用户运行命令(可能需要 sudo)。
- 示例
假设你的 .env 文件中 IMMICH_VERSION=release,升级命令如下:升级完成后,你的 Immich 应该运行最新版本,同时保留所有数据。如果有任何问题,可以回滚到备份并排查日志。1
2
3
4
5cd ~/immich
docker compose down
docker compose pull
docker compose up -d
docker compose logs --follow # 查看日志