828华为云征文 | 华为云Flexusx实例,高效部署Servas书签管理工具的优选平台

news2024/11/13 10:01:13

需要了解

  • 本文章主要讲述在 华为云Flexus X 实例上使用docker快速部署Servas,一款功能强大的自托管书签管理工具,专为追求高效与个性化的用户设计。
  • 选择合适的云服务器: 本文采用的是 华为云服务器 Flexus X 实例(推荐使用)
  • 连接方式: 本文通过本地shell 方式,通过弹性IP 远程连接至服务器,进行部署搭建
  • 操作系统版本: Huawei Cloud EulerOS 2.0
  • Docekr版本: Docker v27.1.1
  • Docekr-compose版本: Docker Compose v2.29.1
  • 服务器购买链接:华为云服务器 Flexus X 实例
  • Docekr安装可参考文章: 华为FlexusX与Docker+Nginx的高效整合之路
  • 详细购买配置实例可参考文章: 快速部署华为云Flexus X实例,开启您的云端之旅

Servas简介

Servas是一款功能强大的自托管书签管理工具,专为追求高效与个性化的用户设计。它允许用户轻松整理、分类并搜索自己的书签,无论是工作资料、学习笔记还是日常兴趣链接,都能迅速找到。

开源项目地址:https://github.com/beromir/Servas

在这里插入图片描述

Servas特点

数据安全与隐私保护:通过自托管模式,用户完全掌控自己的数据和隐私,确保信息安全无虞,避免第三方服务带来的潜在风险。

高效书签管理功能:提供分类、标签、搜索及快速访问等强大功能,帮助用户轻松整理、查找和访问书签,极大提升管理效率。

多用户支持与资源共享:支持多用户账户,促进团队协作与家庭资源共享,实现信息的无缝流通与高效利用。

高度可定制性与扩展性:满足用户多样化的需求,允许用户添加插件或开发新功能,实现个性化定制与功能扩展。

跨设备响应式设计:采用响应式设计,确保在各种设备上都能提供流畅的用户体验,让用户随时随地都能方便地访问和管理书签。

Servas使用场景

个性化书签管理:适合个人用户高效地整理和查找各类书签,包括工作、学习、兴趣等。

团队协作与共享:支持多用户账户,方便团队成员共享书签资源,提升协作效率。

项目资料管理:助力项目管理,通过创建书签文件夹集中存储项目相关链接和资源,促进信息共享。

知识整合与回顾:作为知识管理工具,帮助用户整理学习资料、研究论文等,便于检索和复习。

教育资源平台:教育机构可利用Servas管理课件、学生资料等教学资源,实现资源的集中与共享。

高度定制化:用户可根据需求定制功能,添加插件或开发新功能,满足特定管理需求。

安全隐私保障:自托管模式确保用户数据安全和隐私保护,避免第三方风险。

Servas的部署流程

详细文档可参考开源项目地址:https://github.com/beromir/Servas

在这里插入图片描述

查看docker服务状态

[root@flexusx-251f ~]# systemctl status docker.service
● docker.service - Docker Application Container Engine
     Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: d>
     Active: active (running) since Tue 2024-09-03 16:33:06 CST; 3 days ago
TriggeredBy: ● docker.socket
       Docs: https://docs.docker.com
   Main PID: 586452 (dockerd)
      Tasks: 249
     Memory: 233.5M
     CGroup: /system.slice/docker.service
     .............

检查docekr版本

[root@flexusx-251f ~]# docker --version
Docker version 27.1.1, build 6312585

检查docker compose 版本

检查Docker compose版本,确保2.0以上版本

[root@flexusx-251f ~]# docker-compose -v
Docker Compose version v2.29.1

拉取镜像

[root@flexusx-251f ~]# docker pull  beromir/servas

编写.env文件

可以使用两种数据存储方式,在本次部署中我们使用SQLite,也可使用MySQL

[root@flexusx-251f ~]# mkdir /servas
[root@flexusx-251f ~]# cd /servas/
[root@flexusx-251f servas]# vim .env
[root@flexusx-251f servas]# cat .env
APP_NAME=Servas
APP_ENV=production
APP_KEY=
APP_DEBUG=false
APP_URL=https://123.249.27.118  # 修改为自己主机IP

SERVAS_ENABLE_REGISTRATION=true

# SQLite
DB_CONNECTION=sqlite
DB_DATABASE=/var/www/html/database/sqlite/servas.db
DB_FOREIGN_KEYS=true

编写docekr-compose.yaml文件

[root@flexusx-251f servas]# vim docekr-compose.yaml
[root@flexusx-251f servas]# cat docekr-compose.yaml
version: "3"

services:
  servas:
    image: beromir/servas
    container_name: servas
    restart: always
    ports:
      - "2000:80"
    volumes:
      - ./.env:/var/www/html/.env  # 将宿主机的.env文件挂载到容器内的/var/www/html/.env路径
      - servas-db-sqlite:/var/www/html/database/sqlite # 将卷挂载到容器内的/var/www/html/database/sqlite路径

volumes:
  servas-db-sqlite:    # 创建卷

创建容器

[root@flexusx-251f servas]# docker-compose up -d
WARN[0000] /servas/docker-compose.yaml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion
[+] Running 4/4
 v Network servas_default          Created                                        0.1s
 v Volume "servas_servas-db-data"  Created                                        0.0s
 v Container servas-db-1           Started                                        0.5s
 v Container servas                Started                                        0.6s

生成应用程序秘钥

生成密钥并重新启动 servas 容器

[root@flexusx-251f servas]# docker exec -it servas php artisan key:generate --force

   INFO  Application key set successfully.
   
[root@flexusx-251f servas]# docker-compose restart
WARN[0000] /servas/docker-compose.yaml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion
[+] Restarting 2/2
 v Container servas       Started                                                10.2s
 v Container servas-db-1  Started                                                 1.4s

查看容器运行状态

[root@flexusx-251f servas]# docker-compose ps
WARN[0000] /servas/docker-compose.yaml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion
NAME          IMAGE            COMMAND                  SERVICE   CREATED         STATUS          PORTS
servas        beromir/servas   "/docker-entrypoint.…"   servas    5 minutes ago   Up 41 seconds   9000/tcp, 0.0.0.0:6666->80/tcp, :::6666->80/tcp
servas-db-1   mysql:5.7        "docker-entrypoint.s…"   db        5 minutes ago   Up 50 seconds   3306/tcp, 33060/tcp

访问servas

放行安装组,端口号:2000

在这里插入图片描述

在浏览器输入地址:http://主机IP:2000/login(默认进入登录页面,如果访问不成功,可查看日志报错信息)

在这里插入图片描述

注册账号,访问地址:http://主机IP:2000/register

输入用户名,邮箱,密码进行注册

在这里插入图片描述

点击注册会自动登录进主页面,也可选择自己登录

在这里插入图片描述

登陆成功

在这里插入图片描述

基本使用

新增一个书签链接,点击左侧导航栏 Groups 的 + ,新建分组

在这里插入图片描述

自定义组名,点击创建

在这里插入图片描述

点击右上角新增连接

在这里插入图片描述

输入网址,标题,选择分组

在这里插入图片描述

点击创建链接

在这里插入图片描述

创建 成功,点击右上角可进行访问

在这里插入图片描述

访问成功,完成搭建

在这里插入图片描述

总结

在华为云Flexusx服务器上部署Servas书签管理工具,优势显著。Flexusx以其高性能、高可用性和弹性伸缩能力,为Servas提供了稳定可靠的运行环境。Servas的自托管特性与Flexusx的安全隔离相结合,确保了用户数据的安全与隐私。同时,Flexusx的灵活计费模式降低了用户的IT成本,让用户能够按需付费,有效管理预算。此外,华为云的专业技术支持和全球服务网络,为用户提供了全方位的服务保障。选择华为云Flexusx服务器部署Servas,不仅提升了书签管理的效率与安全性,还享受到了云计算带来的便捷与成本优势。如果你也需要,赶紧部署起来吧

产品链接:华为云Flexus云服务器X实例_直播_建站服务器-华为云

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2113175.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Vue 中 watch 和 watchEffect 的区别

watch 和 watcheffect 都是 vue 中用于监视响应式数据的 api,它们的区别在于:watch 用于监视特定响应式属性并执行回调函数。watcheffect 用于更通用的响应式数据监视,但回调函数中不能更新响应式数据。Vue 中 watch 和 watchEffect 的区别 …

C++ 日历计算器的实现

日历计算器 创建一个日期类对运算符进行重载代码 创建一个日期类 年月日为类的成员变量,所以放到私有区域,又因为成员变量为内置类型,编译器自动生成的默认构造函数对其不做处理,所以需要我们显示定义一个构造函数,而…

亿发:中小型制造企业数字化转型典型场景、痛点、解决方案

随着全球制造业的不断发展,中小型制造企业正面临前所未有的挑战和机遇。数字化转型成为了企业提升竞争力、优化生产效率、应对市场变化的关键路径。然而,对于资源相对有限的中小型制造企业而言,数字化转型并非易事。他们在推进转型的过程中往…

视频的编码与传输 学习笔记2 信息论

说白了,关键点就三个:信源,压缩与信道 DMS就是无记忆的信源,该输出什么就输出什么。 马尔卡夫信源,准确来讲是m马尔卡夫,会受到前m个状态的影响。(妈的,马尔卡弗还在追我&#xff0c…

【工具分享】针对加解密综合利用后渗透工具 - DecryptTools

下载地址: 链接: https://pan.quark.cn/s/2e451bd65d79工具介绍 支持22种OA、CMS 加解密密码查询功能 万户OA 用友NC 金蝶EAS 蓝凌OA 致远OA 宏景ERP 湖南强智 金和jc6 瑞友天翼 金和C6 Navicat 华天动力 FinalShell 亿赛通 帆软报表 H3C CAS Weblogic 金蝶云星空…

基于SSM+Vue+MySQL的可视化高校公寓管理系统

系统展示 管理员界面 宿管界面 学生界面 系统背景 当前社会各行业领域竞争压力非常大,随着当前时代的信息化,科学化发展,让社会各行业领域都争相使用新的信息技术,对行业内的各种相关数据进行科学化,规范化管理。这样的…

51单片机-第十二节-LCD1602液晶显示屏

一、LCD1602介绍: LCD1602是一种字符型液晶显示屏,可以显示ASCII码的标准字符和其他的内置特殊字符。 显示容量:16*2个字符,每个字符为5*7点阵。 二、引脚及应用电路: 其中:D0-7这8位数据是接在P0引脚上…

聚焦2024数博会|与天空卫士一起探索AI与数据安全的融合应用

中国国际大数据产业博览会(简称数博会),是全球首个以大数据为主题的博览会,自2015年创办以来,经过多年的深厚沉淀,数博会已发展成为国际知名、引领前沿趋势的专业展示合作平台。 2024年8月28日至30日&#…

T1打卡——mnist手写数字识别

🍨 本文为🔗365天深度学习训练营中的学习记录博客🍖 原作者:K同学啊 1.定义GPU import tensorflow as tfgpustf.config.list_physical_devices("GPU")if gpus:gpu0gpus[0]tf.config.experimental.set_memort_groth(gp…

重卡换电连接器的应用

电动汽车换电模式涉及在专门充电站集中存储和充电大量电池,实现统一配送,并在换电站对电动汽车进行快速电池更换服务,或整合充电、物流、调配和换电服务。新能源汽车面临续航限制和配套设施不完善等问题,影响了其大规模推广。电池…

Java创建线程(5种方法)

操作系统提供api操作线程 线程本身是操作系统提供的,操作系统提供API让我们操作线程,JVM对操作系统api进行了封装,在线程这一部分,就提供了Thread类,表示线程。 创建线程 创建一个MyThread类(类的名字不…

基于PI控制算法的异步感应电机转速控制系统simulink建模与仿真

目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 5.完整工程文件 1.课题概述 基于PI控制算法的异步感应电机转速控制系统simulink建模与仿真。PI控制器是一种经典的线性控制器,它通过将控制量的比例部分和积分部分相结合来实现对系统输出的调…

【C-实践】网络聊天室(1.0)

概述 使用了 tcp epoll ,实现网络聊天室 1.0 版,用户的显示框和输入框在一起 2.0 版,用户的显示框与输入框分离 功能 主要功能:用户连接服务器,就会自动进入网络聊天室与其他在线用户一起聊天 服务器搭建 创建用户数…

探索EasyCVR与AI技术深度融合:视频汇聚平台的新增长点

随着5G、AI、边缘计算、物联网(IoT)、云计算等技术的快速发展,万物互联已经从概念逐渐转变为现实,AIoT(物联网人工智能)的新时代正在加速到来。在这一背景下,视频技术作为信息传输和交互的重要手…

常见Python GUI库分析

引言 在Python环境下进行桌面编程时,选择合适的GUI(图形用户界面)库至关重要。在Python环境下进行桌面编程GUI开发时,有多个优秀的库可供选择。以下是一些推荐的GUI库,包括它们的推荐理由、优劣势以及简单的demo示例。…

【论文阅读】SwiftTheft: A Time-Efficient Model Extraction Attack Framework(2024)

完整标题 SwiftTheft: A Time-Efficient Model Extraction Attack Framework Against Cloud-Based Deep Neural Networks 摘要 With the rise of artificial intelligence(人工智能) and cloud computing(云计算), machine-learning-as-a-service platforms(机器学习即…

SpringMVC基于注解使用:JSON

01-json处理--介绍 json数据格式回顾: 在pom.xml导入依赖 在web.xml里面导入配置文件 ResponseBody 注解是将返回值作为文本返回到客户端了而不是字符串了 当我们想返回bean对象的json数据的时候我们需要先导入jackson依赖在pom.xml里面 然后创建User类&#xff0c…

最新版 | 深入剖析SpringBoot3源码——分析自动装配原理(面试常考)

文章目录 一、自动配置概念二、半自动配置(误~🙏🙏)三、源码分析1、验证DispatcherServlet的自动配置2、源码分析入口SpringBootApplication3、SpringBootConfiguration的Configuration4、EnableAutoConfiguration的AutoConfigura…

猜测、实现 B 站在看人数

猜测、实现 B 站在看人数 猜测找到接口参数总结 实现 猜测 找到接口 浏览器打开一个 B 站视频,比如 《黑神话:悟空》最终预告 | 8月20日,重走西游_黑神话悟空 (bilibili.com) ,打开 F12 开发者工具,经过观察&#xf…

【数据结构初阶】链表分类与双向带头循环链表接口实现

文章目录 1. 链表的分类2. 双向带头循环链表接口实现2. 1 结点声明2. 2 创建链表节点2. 3 初始化链表2. 4 打印链表2. 5 尾插2. 6 判空2. 7 尾删2. 8 头插2. 9 头删2. 10 查找2. 11 在指定位置删除与插入2. 12 销毁 3. 链表接口测试4. 单链表与双链表5. 顺序表与链表 1. 链表的…