静看光阴荏苒
不管不顾不问不说也不念

LinkAce:开源的自托管书签管理器

说起来LinkAce这个项目我很早就知道了,当时还准备拿来水一篇文章的:

但是当我搭建好了之后,发现有很多BUG。。而且作者自己当时也说了这个项目还在测试中,所以我就一直在等作者修。(当然现在也还有一些小问题233)

这一等就是大半年,现在终于发布正式版了。目前这是我比较中意的一款书签程序,所以我也决定重新水一篇搭建的文章。

LinkAce的官网有比较详细的搭建教程,但是那个方法不太适合想在一台服务器上部署多个应用的人,因为它直接就把80/443端口占了。所以这里我水一个用nginx反代的方法。

安装nginx/certbot/docker和一些需要用到的软件:

apt -y install curl nginx python-certbot-nginx
curl -sSL https://get.docker.com/ | sh
systemctl enable --now nginx docker

安装docker-compose:

curl -L https://github.com/docker/compose/releases/download/1.27.4/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

新建一个目录进入到这个目录内:

mkdir -p /opt/linkace && cd /opt/linkace

把需要用到的配置文件下载下来,并给予正确的权限:

wget https://raw.githubusercontent.com/Kovah/LinkAce/master/.env.docker.production -O .env
wget https://raw.githubusercontent.com/Kovah/LinkAce/master/nginx.conf
chmod 777 .env

再新建一个docker-compose.yml:

nano docker-compose.yml

写入如下配置:

version: '3.5'

services:
  linkace-db:
    image: bitnami/mariadb:10.5
    environment:
      - MARIADB_ROOT_PASSWORD=password
      - MARIADB_USER=imlala
      - MARIADB_PASSWORD=password
      - MARIADB_DATABASE=linkace
    volumes:
      - linkace_db:/bitnami
    restart: unless-stopped

  linkace-redis:
    image: bitnami/redis:6.0
    environment:
      - REDIS_PASSWORD=password
    restart: unless-stopped

  linkace-app:
    image: linkace/linkace:latest
    depends_on:
      - linkace-db
      - linkace-redis
    volumes:
      - ./.env:/app/.env
      - linkace_app:/app
      - linkace_logs:/app/storage/logs
    restart: unless-stopped

  linkace-nginx:
    image: bitnami/nginx:1.19
    ports:
      - "127.0.0.1:8080:8080"
    depends_on:
      - linkace-app
    volumes:
      - linkace_app:/app
      - ./nginx.conf:/opt/bitnami/nginx/conf/server_blocks/linkace.conf:ro
    restart: unless-stopped

volumes:
  linkace_app:
  linkace_logs:
  linkace_db:
    driver: local

注:

1.所有password字段务必设置一个高强度的密码。

2.127.0.0.1:8080这里的8080端口,如果你的8080端口已经被占用,这里你可以改为其他任意一个未占用的。

接下来编辑env配置文件:

nano .env

找到下面这些部分,password按照你之前compose上配置的内容填写即可:

DB_CONNECTION=mysql
DB_HOST=linkace-db
DB_PORT=3306
DB_DATABASE=linkace
DB_USERNAME=imlala
DB_PASSWORD=password
REDIS_HOST=linkace-redis
REDIS_PASSWORD=password                  
REDIS_PORT=6379
SESSION_DRIVER=redis
CACHE_DRIVER=redis

最后我们再编辑下载来的nginx配置文件:

nano nginx.conf

把如下位置改为:

...
    location ~ \.php$ {
        fastcgi_pass linkace-app:9000;
...

现在up起来即可:

docker-compose up -d

确认所有容器状态都是up:

docker-compose ps

之后执行下面的命令生成一个key:

docker-compose exec linkace-app php artisan key:generate

程序现在就跑起来了,但是现在外网是访问不到的。所以现在在宿主机新建一个nginx配置文件用于反向代理:

nano /etc/nginx/conf.d/linkace.conf

写入如下配置:

server {
   listen 80;
   server_name link.imlala.best; # 换成你的域名
   client_max_body_size 0;

location / {
   proxy_pass       http://127.0.0.1:8080;
   proxy_set_header Host $host;
   proxy_set_header X-Real-IP $remote_addr;
   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
   proxy_set_header X-Forwarded-Proto $scheme;
   }
}

注:如果你之前在compose内暴露的端口不是8080,这里需要修改为对应的。

使用certbot签一个ssl证书:

certbot --nginx

接下来访问你的域名开始安装,这些步骤我就省略了,直接保持默认下一步就可以,直到你看到这个页面,创建管理员账号:

如果不出意外的话,在创建完管理员账号后,程序又会跳回安装界面。(这是当前版本的BUG)

解决办法,手动编辑env配置文件:

nano .env

把这一行改为如下所示:

SETUP_COMPLETED=true

登录进去之后,找到系统设置-Cron令牌:

将你的这个URL复制下来,回到终端新建计划任务:

crontab -e

在里面配置上你的URL,以每分钟执行一次,例如:

* * * * * wget -qO- https://link.imlala.best/cron/example > /dev/null

至此,所有配置就完成了,现在你可以尝试添加第一个书签:

额外提示一下,程序是有中文的,可以在后台自己设置。

赞(0)
未经允许不得转载:荒岛 » LinkAce:开源的自托管书签管理器
分享到: 更多 (0)

评论 8

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #1

    大佬您好,试着搭建了下,目前就这个问题,点击添加链接后,会转圈很久,然后出现一个500错误
    我先测试的是您的网页,可以添加成功,但是会提示是一个失效链接,访问不了(国内小鸡)
    然后我去hosts里面添加了您博客的ip,再删除重新测试了一遍,还是卡500,但是会添加成功,显示失效链接
    然后我又测试了hostloc,同样显示500,但在点击go back之后可以看到是添加成功的。
    所以想请问一下,出现这个500错误是什么问题,图片如下
    https://s3.ax1x.com/2020/12/19/rU1Rkd.png

    小东3年前 (2020-12-19) Google Chrome 86.0.4240.111 Google Chrome 86.0.4240.111 Windows 10 x64 Edition Windows 10 x64 Edition回复
    • 我只遇到过添加链接会转圈比较久,最后还是添加成功的,但不会500错误。我刚又尝试添加了几个链接也不会转圈很久了,就很玄学。

      我猜可能是因为程序要获取目标站点的标题,描述等信息,国内小鸡访问比较慢导致的?

      LALA3年前 (2020-12-19) Google Chrome 86.0.4240.198 Google Chrome 86.0.4240.198 Windows 10 x64 Edition Windows 10 x64 Edition回复
  2. #2

    compose配置里面的用户名imlala可以修改成自己的名字吗?按教程搭建完打开网页会出现HTTP ERROR 500,不知道什么原因,防火墙已开,所有容器都是UP :grin:

    Foliage3年前 (2020-12-20) Google Chrome 86.0.4240.193 Google Chrome 86.0.4240.193 Windows 10 x64 Edition Windows 10 x64 Edition回复
    • 可以的,你只需要保证compose的数据库配置和.env文件内的配置一致就行。

      LALA3年前 (2020-12-20) Google Chrome 86.0.4240.198 Google Chrome 86.0.4240.198 Windows 10 x64 Edition Windows 10 x64 Edition回复
  3. #3

    我觉得这个程序太麻烦了,简单的一个链接保存程序弄的安装这么复杂,这还是docker的安装..
    顺便问下网站用的啥字体啊,看起来好舒服啊

    meegar3年前 (2020-12-26) Google Chrome 87.0.4280.88 Google Chrome 87.0.4280.88 Windows 10 x64 Edition Windows 10 x64 Edition回复
    • 你这直接就相当于是把laravel框架给怼了,laravel写的程序安装基本都是这么个步骤。。而且也不是很麻烦吧。。字体我也不知道具体叫什么,你需要的话这里下载即可:https://cdn.jsdelivr.net/gh/xiya233/cdn@1.0/storage/moonbridge.woff

      LALA3年前 (2020-12-30) Google Chrome 86.0.4240.198 Google Chrome 86.0.4240.198 Windows 10 x64 Edition Windows 10 x64 Edition回复
  4. #4

    按教程搭建完打开网页会出现HTTP ERROR 500,不知道什么原因,防火墙已开,所有容器都是UP :cry: :cry: :cry:

    顾昊昊3年前 (2021-08-28) Microsoft Edge 92.0.902.77 Microsoft Edge 92.0.902.77 Android 11 Android 11回复

分享创造快乐

广告合作资源投稿