轻松备份和共享照片的Circled.me
什么是 Circled.me ?
Circled.me
旨在帮助人们在自己的服务器上轻松备份和共享照片、视频、相册。注重性能、低占用空间以及易于实施和使用。支持托管社区所需的一切,能够进行交流和交换照片、想法等,实现通过群聊等方式与您的圈子分享。
软件特点:
- 快速响应时间和低
CPU
和内存使用 iOS
和Android
照片备份(使用移动端app
)- 支持本地挂载磁盘或
S3
兼容服务 - 这允许不同用户在同一服务器上使用自己的S3
存储桶 - 推送通知以获取新的相册照片等
- 相册了添加本地服务器的发布者和查看者
- 通过“秘密”链接与任何人分享相册
- 按年份、月份、位置等筛选照片
- 时刻 - 自动按时间和位置对照片进行分组
- 对所有资产进行逆地理编码
- 自动将视频转换为
web
兼容的H.264
格式
如果您使用默认的 SQLite DB
引擎,则应用程序不依赖于任何其他服务。目前支持 SQLite
和 MySQL
用于元数据存储。
安装
建数据库
老苏用了群晖自带的 MariaDB 10
数据库。当然你也可以用 SQLite
在 phpMyAdmin
中创建名为 circled
的空数据库。
为便于说明,假设数据库密码为
123456
所以根据上面的设置,最后得到的数据库相关的参数如下:
- 数据库主机:
192.168.0.197
,与群晖主机IP
一致; - 数据库端口:
3307
,如果用MariaDB 5
就是3306
,但老苏没测; - 数据库用户:
circled
- 数据库密码:
123456
- 数据库库名:
circled
,因为勾选了与用户同名;
安装镜像
在群晖上以 Docker 方式安装。
在注册表中搜索 circled-server
,选择第一个 gubble/circled-server
,版本选择 latest
。
本文写作时,
latest
版本对应为0.9.5.1
;
卷
在 docker
文件夹中,创建一个新文件夹 circled
,并在其中建一个子文件夹 data
文件夹 | 装载路径 | 说明 |
---|---|---|
docker/circled/data |
/mnt/data1 |
存放数据库和上传文件等 |
端口
本地端口不冲突就行,不确定的话可以用命令查一下
1 | # 查看端口占用 |
本地端口 | 容器端口 |
---|---|
8288 |
8080 |
默认没有对外暴露端口
需要点 +
号自行添加
环境
可变 | 值 |
---|---|
MYSQL_DSN |
数据源名称 |
BIND_ADDRESS |
绑定到的 IP 和端口 |
DEFAULT_BUCKET_DIR |
默认存储桶的目录 |
DEFAULT_ASSET_PATH_PATTERN |
默认路径模式 |
MYSQL_DSN
:格式参考:https://github.com/go-sql-driver/mysql#dsn-data-source-name,一个完整的DSN
示例:
1 | # 示例 |
对照示例,我们可以拆解为:
username
:数据库用户:circled
password
:数据库用户对应的密码:123456
protocol
:协议为tcp
address
:数据库服务的地址,包含了主机和端口:192.168.0.197:3307
dbname
:数据库库名:circled
param
:为参数,包括了字符集等:charset=utf8mb4&parseTime=True&loc=Local
所以除了参数照抄外,其他的都是和前面 MariaDB
数据库的设置保持一致的
BIND_ADDRESS
:绑定到的IP
和端口(与TLS_DOMAINS
不兼容)。如果您的服务器位于反向代理之后,这将非常有用。例如:0.0.0.0:8080
,如果这里改了端口,前面的容器端口也要跟着变。DEFAULT_BUCKET_DIR
:如果不存在其他存储桶(即第一次运行服务器),则将用作默认存储桶的目录。例如:/mnt/data1
DEFAULT_ASSET_PATH_PATTERN
:根据资产信息创建子目录和文件名的默认路径模式。默认为<year>/<month>/<id>
但是看图片保存的路径,怎么像是
<id>/<year>/<month>
😂
更多环境变量,请参考官方文档:https://github.com/circled-me/server#compiling-and-running-the-server
命令行安装
如果你熟悉命令行,可能用 docker cli
更快捷
1 | # 新建文件夹 circled 和 子目录 |
也可以用 docker-compose
安装,将下面的内容保存为 docker-compose.yml
文件
1 | version: '2' |
然后执行下面的命令
1 | # 新建文件夹 circled 和 子目录 |
运行
在浏览器中输入 http://群晖IP:8288
,你只会看到报错的界面
1 | 404 page not found |
因为我们安装的只是接口服务,业务需要是通过移动端 app
来实现的
移动端 app
在官方的主页上提供了 App Store
和 Google Play
的下载地址
Google Play
因为老苏的手机没有 GMS
,所以找到另一个源:https://apkpure.com/circled-me/me.circled.app
第一次打开 app
,需要点 Or create first user?
创建一个用户
填写完之后,点 Create User
Server
:填服务器地址,http://群晖IP:8288
Username
:用户名Password
:密码,长度不能少于8
位Confirm Password
:再次输入密码
进入设置项 Setting
,第一次需要授权
点 Start
开始备份
会看到上传信息
上传一会儿,在 Library
中就能看到照片和视频
注意事项
项目尚处于开发阶段,所以官方提示:
⚠️ 注意:请注意,该项目仍在开发中,可能会引入重大变化。
⚠️ 警告:请勿将其用作主要/唯一的备份解决方案。
参考文档
circled-me/server at selfh.st
地址:https://github.com/circled-me/servercircled-me/app: This repository holds the source code for the circled.me app available on the AppStore and Google Play. Please see more details in https://github.com/circled-me/server
地址:https://github.com/circled-me/appWelcome to the circled.me community
地址:https://app.circled.me/circled.me: just open-sourced my self-hosted community server and app : selfhosted
地址:https://www.reddit.com/r/selfhosted/comments/176un72/circledme_just_opensourced_my_selfhosted/