AhFei

AhFei

简洁的写作需要勇气

分享我使用两年的极简网页记事本

若无单独说明,按照文章代码块中命令的顺序,一条一条执行,即可实现目标。
适用系统:Debian 系发行版,包括 Ubuntu 和 Armbian,其他发行版按流程稍改命令一般也可。

走通预计时间:10 分钟(Docker) 或 25 分钟(原生部署)


可以访问这个实例: https://forward.vfly.app/index.php ,试试怎么样,公开使用的网页记事本。

minimalist-web-notepad#

image.png

这个网页记事本是我 2 年前玩机子初期的一大驱动力。当时主要从手机上浏览信息,刚转变到在电脑上处理信息,需要一种简便的渠道在两者之间传递文本、网址。

网盘太重,微信需要验证,tg 很好,但在找到这个记事本后,都是乐色,这就是最好的全平台传递文本的工具。

极简网页 记事本,是一个使用浏览器访问的轻量好用的记事本,专注于文本记录。

Github:pereorga/minimalist-web-notepad: Minimalist Web Notepad (github.com)


使用方法

  1. 访问网页: https://forward.vfly.app/index.php
  2. 它会随机分配 5 个字符组成的地址,如 https://forward.vfly.app/5b79m ,如果想指定地址,只需要访问时手动修改,如 https://forward.vfly.app/this_is_a_path 。下面以 5b79m 为例。
  3. 在上面编辑文本
  4. 等待一会(几秒,取决于延迟),服务端就会存储网页内容到名为 5b79m 的文件里。
  5. 关闭网页,如果关闭太快,会来不及保存,丢失编辑。
  6. 在其他平台再访问同样的网址,就能剪切内容了 ٩۹(๑・̀ω・́ ๑)۶

只要不关闭过快和在两个网页同时编辑,它都能很好地工作。因为极简,项目作者不会考虑增加多余功能。

webnote-in-phone_compressed.webp

在远控其他电脑时,用这个先传递命令,在目标电脑上使用,非常方便,而且适应性强。多个手机之间也一样。或者用于临时传送敏感数据,避免受到平台审查。

使用 Docker 安装网页记事本#

GitHub: pereorga/minimalist-web-notepad at docker (github.com)

全复制并执行,一键创建工作目录并开放端口

myserve="webnote"
sudo ufw allow 8088/tcp comment $myserve && sudo ufw reload
cd ~/myserve/
wget https://github.com/pereorga/minimalist-web-notepad/archive/refs/heads/docker.zip
unzip docker.zip && mv minimalist-web-notepad-docker webnote
cd webnote

根据注释自定义,然后执行,一键创建 docker-compose.yml 文件

cat > docker-compose.yml << EOF
---

version: "2.4"
services:
  minimalist-web-notepad:
    build: .
    container_name: webnote
    restart: always
    ports:
     - "8088:80"
    volumes:
     - ./_tmp:/var/www/html/_tmp
EOF

前面的 5b79m 就存储在 _tmp 中。

构建并启动容器(完成后就可以访问网页了,通过 http://ip_addr_or_domain:8088 访问。将 ip_addr_or_domain 替换为服务器的 IP 或域名)

docker compose up -d

Docker 版很久没更新了,有技术的可以参考下面的原生安装创建镜像。

原生安装网页记事本#

下面以域名 http://forward.vfly.app 为例。

安装 Apache2 和 PHP#

sudo apt update && sudo apt upgrade && \
sudo apt install apache2
# sudo systemctl status apache2   # 检查状态
sudo apt install php libapache2-mod-php

访问 http://YOUR_IP_or_Domain/ 可以验证 Apache 是否正常工作,如果能看到欢迎页。

安装 PHP 后,重启 Apache 以加载 PHP module:

sudo systemctl restart apache2

检测 PHP 安装:

sudo bash -c 'echo "<?php phpinfo(); ?>" > /var/www/html/phpinfo.php'

访问 http://YOUR_IP_or_Domain/phpinfo.php 可以验证 php 是否安装成功。

说个自己的经历。从 porkbun 白嫖的 .app 域名,用来解析这个服务的时候,怎么都打不开,还总是跳 HTTPS ,老半天才知道, .app 和 .net 似乎只能 HTTPS 。

创建目录和下载原文件#

cd /var/www/ && \
sudo git clone https://github.com/pereorga/minimalist-web-notepad.git
# 改名并将目录赋予用户 www-data 以拥有读写权限
sudo mv minimalist-web-notepad webnote
sudo chown -R www-data:www-data /var/www/webnote

修改 $base_url = 'http://forward.vfly.app'; 就在第四行,必须修改为访问时的域名,如果后面要加 SSL,这里也要对应修改为 https 。

cd /var/www/webnote && sudo vim index.php

创建虚拟主机#

如果要用 https,跳过这节,直接看下面一节

进入可用虚拟主机目录,复制示例配置文件,并编辑

cd /etc/apache2/sites-available   
sudo cp 000-default.conf web-notepad.conf
sudo vim web-notepad.conf

保证有下面的两行即可,记得修改域名和目录。

        ServerAdmin <邮箱随意>
        ServerName forward.vfly.app
        DocumentRoot /var/www/webnote

还要添加下面这部分

<Directory /var/www/webnote>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
</Directory>

启用虚拟主机

sudo a2enmod rewrite   # 开启mod_rewrite,
sudo a2ensite web-notepad.conf   # 启用虚拟主机
sudo systemctl reload apache2   # 重启apache2生效

这样就可以使用了,浏览器访问:http://YOUR_Domain/index.php

SSL#

申请证书时,要使用 root: sudo -i ,实际部署时,记得修改域名。

安装并启用 acme.sh 脚本(/home/skf/.acme.sh/acme.sh)(改邮箱)

apt install -y curl && curl https://get.acme.sh | sh -s [email protected] && cd ~ && source .bashrc

切换证书签发机构

acme.sh --set-default-ca --server letsencrypt

签发证书(改域名)

acme.sh  --issue -d forward.vfly.app --apache

安装证书(改域名)

acme.sh --install-cert -d forward.vfly.app \
--cert-file      /etc/ssl/certs/forward.vfly.app.cer \
--key-file       /etc/ssl/private/forward.vfly.app.key

开启 acme.sh 自动升级

acme.sh  --upgrade  --auto-upgrade

可以退出 root 用户了。

进入可用虚拟主机目录,复制另一个默认的,并编辑

cd /etc/apache2/sites-available   
sudo cp default-ssl.conf ssl-webnote.conf
sudo vim ssl-webnote.conf

保证有下面的两行即可,记得修改域名和目录。

        ServerAdmin <邮箱随意>
        ServerName forward.vfly.app
        DocumentRoot /var/www/webnote

还要添加下面这部分

<Directory /var/www/webnote>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
</Directory>

还有编辑证书位置

          SSLCertificateFile  /etc/ssl/certs/forward.vfly.app.cer
          SSLCertificateKeyFile /etc/ssl/private/forward.vfly.app.key

启用虚拟主机

sudo a2enmod rewrite ssl   # 开启mod_rewrite,ssl
sudo a2ensite ssl-webnote.conf   # 启用虚拟主机
sudo systemctl reload apache2   # 重启apache2生效

这样就可以使用了,浏览器访问:https://YOUR_Domain/index.php

如果出现文本框很小的情况,那是 $base_url 的没从 http 改成 https 。

迁移#

数据都在 /var/www/webnote/_tmp 中,在新机子上重新部署一遍,复制这个目录到新机子上即可。

其他#

如要开启认证访问。 编辑网站根目录下的.htaccess,去掉末尾四行的注释。

cd /var/www/webnote && sudo vim .htaccess

这四行取消注释

# AuthType basic
# AuthName "website.name"
# AuthUserFile "/var/www/webnote/update-path-to.htpasswd"   # 这里的路径自定义
# Require valid-user

再创建文件

sudo touch /var/www/webnote/update-path-to.htpasswd

然后添加账户即可(记得改 username,会提示输密码)

sudo htpasswd -c /var/www/webnote/update-path-to.htpasswd username

如要添加第二个,不要加 - c,否则会覆盖第一个

其他类似项目#

浏览器便签#

很不错的项目,简单,虽然项目不更新了,但是功能基本完成。

GitHub: jonathontoon/manifest: An instant grid-based pinboard for note taking in your browser. (github.com)

image.png

Hasty Paste#

一个文本粘贴工具,看着不错,有高亮,适合分享代码。

GitHub:enchant97/hasty-paste: A fast and minimal paste bin. (github.com)

image


原文链接: https://blog.vfly2.com/2023/08/a-minimalist-web-notepad-used-for-two-years/
版权声明:本博客所有文章除特別声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 承飞之咎 (blog.vfly2.com)

如果你认为我的文章有帮助,欢迎使用 RSS 订阅,也欢迎留言指正。

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。