Docker 部署 Mastodon - 一个去中心化的社交平台

在当今互联网时代,社交媒体已经成为人们生活的重要一部分,然而,传统社交媒体平台通常集中于单一中央服务器,这引发了一些问题,包括隐私担忧、数据泄露风险以及广告和跟踪滥用。然而,现在有一种新的社交网络正在崭露头角,它将互联网的去中心化精神引入了社交媒体世界 - 那就是 Mastodon。 Mastodon 是一种开源、分布式的社交网络平台,以其强调去中心化、用户隐私和自主控制而引起了广泛的关注。与传统社交媒体巨头如 Twitter 和 Facebook 不同,Mastodon 的去中心化设计使其不依赖于单一中央服务器。相反,它由许多相互连接的服务器(或称为实例)组成,每个实例都是一个独立的社交网络...

CeSI - 管理多个 Supervisor 的Web界面

CeSI(Centralized Supervisor Interface),它是一个用于管理多个监督者(Supervisor)的Web界面。监督者本身具有自己的Web用户界面,但是使用单独的界面来管理多个监督者安装是复杂的。CeSI的目标是通过基于监督者的RPC接口创建一个集中式的Web用户界面,以解决这个问题。 docker-compose.yml https://github.com/chudaozhe/docker-compose-samples/tree/main/cesi 关于ui 这个项目的前端部分是用React写的,正常情况构建镜像 需要先yarn build,然后把构建好的...

PM2 - 进程管理工具

PM2 是具有内置负载均衡器的 Node.js 应用程序的生产过程管理器。它允许您使应用程序永远保持活动状态,在不停机的情况下重新加载它们,并促进常见的系统管理任务。 全局安装pm2 npm install pm2 -g 启动监听模式 自动监听文件变化 pm2 start app.js --watch 常用命令 pm2 start app.js # 启动 pm2 stop app.js # 停止 pm2 logs # 日志 pm2 stop all # 停止全部 pm2 delete all # 杀死全部进程 pm2 startup # 开机自启 pm2 update pm2 # 更新 pm...

NLTK 的安装

Natural Language Toolkit,自然语言处理工具包,在NLP领域中,最常使用的一个Python库。 自动安装 如果您不确定需要哪些数据集/模型,可以安装流行的 python -m nltk.downloader popular //或者 import nltk; nltk.download('popular') 手动安装 已知的原因,自动安装会失败 手动下载这些包https://github.com/nltk/nltk_data/tree/gh-pages/packages,放在nltk_data目录,然后移动到正确的位置。 比如我的: ~/Library/Caches/p...

Jupyter Notebook 安装 PHP 内核

普通安装 安装zmq扩展 官方的zmq已多年不维护了,并且在php7.4中报错,所以只能选择第三方的了 wget https://github.com/stijnvdb88/php-zmq/archive/refs/tags/v4.3.4.tar.gz tar -xvzf php-zmq-4.3.4.tar.gz mv php-zmq-4.3.4 /usr/src/php/ext/php-zmq #安装依赖 apt-get install -y libzmq3-dev #安装扩展 docker-php-ext-install php-zmq 安装Jupyter-PHP-Installe...

Jupyter Notebook 安装 GO 内核

普通安装 https://github.com/janpfeifer/gonb#linux-and-mac-installation go install github.com/janpfeifer/gonb@latest && go install golang.org/x/tools/cmd/goimports@latest && go install golang.org/x/tools/gopls@latest && gonb --install 接着我用PyCharm/VS Code测试,报错了 fmt: package fmt is ...

Alembic - 用于 SQLAlchemy 的数据库迁移工具

Alembic 是SQLAlchemy的作者编写的数据库迁移工具。 安装配置 pip install alembic #初始化 alembic init {指定目录,比如 alembic } 配置 将alembic.ini中的sqlalchemy.url改为你数据库地址:sqlalchemy.url = sqlite:///./database/app.sqlite3 迁移脚本 https://alembic.sqlalchemy.org/en/latest/tutorial.html#create-a-migration-script #创建 alembic revision -m "cr...

sqlalchemy的基本使用

SQLAlchemy 是 Python 的 SQL 工具包和 ORM 框架 安装 pip install SQLAlchemy 封装 #path: core/db/sqlite.py from sqlalchemy import create_engine from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.orm import sessionmaker #数据库访问地址 SQLALCHEMY_DATABASE_URL = "sqlite:///./database/app.sqlite3" ...

Laravel CSRF 保护

跨站点请求伪造(英语:Cross-site request forgery)是一种恶意利用,利用这种手段,代表经过身份验证的用户执行未经授权的命令。值得庆幸的是,Laravel 可以轻松保护您的应用程序免受跨站点请求伪造(CSRF)攻击。 漏洞的解释 如果您不熟悉跨站点请求伪造,我们讨论一个利用此漏洞的示例。假设您的应用程序有一个 /user/email 路由,它接受 POST 请求来更改经过身份验证用户的电子邮件地址。最有可能的情况是,此路由希望 email 输入字段包含用户希望开始使用的电子邮件地址。 没有 CSRF 保护,恶意网站可能会创建一个 HTML 表单,指向您的应用程序 /use...

laravel 自定义中间件实现身份验证

通过Laravel 用户认证我们知道了基于 api 的身份验证,实现方式有Laravel Sanctum API 授权 、 Laravel 使用 Json Web Token(JWT) 等,今天介绍一下自定义中间件实现身份验证 中间件 使用中间件需要提前在app/Http/Kernel.php这里配置,分为全局中间件、中间件、中间件组 全局中间件 全局中间件无需主动调用,系统会自动应用到每次请求。比如:TrimStrings中间件会自动去掉请求参数左右两边的空格;ConvertEmptyStringsToNull中间件会自动把请求参数中的空字符串转为 null。 ConvertEmptyStr...