My Site

Verdaccio

Verdaccio是一个NPM私有服务器。 启动Docker镜像 Docker Compose配置文件: version: "3" services: verdaccio: image: verdaccio/verdaccio environment: - VERDACCIO_PORT=4873 ports: - 4873:4873 volumes: - /data/verdaccio/conf:/verdaccio/conf - /data/verdaccio/storage:/verdaccio/storage - /data/verdaccio/plugins:/verdaccio/plugins 执行docker-compose up -d以启动镜像并创建容器。 配置文件 编辑配置文件config.yaml以配置Verdaccio: storage: /verdaccio/storage/data # 存储包的路径 plugins: /verdaccio/plugins web: title: Verdaccio auth: htpasswd: file: /verdaccio/storage/htpasswd uplinks: npmjs: url: https://registry.npmmirror.com packages: '@*/*': access: $authenticated # 登录后有权限 publish: admin # 仅限admin用户上传 unpublish: admin proxy: npmjs '**': access: $authenticated publish: admin unpublish: admin proxy: npmjs server: keepAliveTimeout: 60 middlewares: audit: enabled: true 向私服添加用户 npm adduser --registry http://<verdaccio-host>:4873 输入用户名、密码、邮箱便添加成功,在~/.

服务器部署Gitea

本文介绍使用Docker安装Gitea以及配置Drone CI的步骤。 安装 docker pull gitea/gitea docker pull drone/drone docker pull drone/drone-runner-docker docker-compose.yml配置 version: "3" networks: gitea: external: false services: fan-gitea: image: gitea/gitea ports: - 19201:3000 - "127.0.0.1:19202:22" restart: always networks: - gitea volumes: - /home/git/docker/gitea/data:/data - /home/git/.ssh/:/data/git/.ssh environment: - USER_UID=<your-git-user-uid> - USER_GID=<your-git-user-gid> fan-drone-server: image: drone/drone ports: - 19204:80 - 19203:443 networks: - gitea volumes: - /home/git/docker/drone/data:/data restart: always environment: - DRONE_GITEA_SERVER=http://<myip>:19201 - DRONE_GITEA_CLIENT_ID=<client-id> - DRONE_GITEA_CLIENT_SECRET=<client-secret> - DRONE_RPC_SECRET=*** - DRONE_SERVER_PROTO=http - DRONE_SERVER_HOST=<myip>:19204 - DRONE_USER_CREATE=username:<gitea_login_user>,admin:true fan-docker-runner: image: drone/drone-runner-docker ports: - 19205:3000 restart: always networks: - gitea depends_on: - fan-drone-server volumes: - /var/run/docker.

Linux添加用户

使用adduser添加用户: adduser <username> 这个过程中会进行用户密码设置,以及在/home下创建用户目录。 通过下列命令切换至用户: su <username> 修改密码: passwd 添加用户到sudoer,使用户有权使用sudo,需要修改/etc/sudoers: su root # 切换到root用户 chmod u+w /etc/sudoers # 添加可写权限 打开文件,发现root ALL=(ALL)ALL,在下面添加<username> ALL=(ALL)ALL。 修改完毕后撤销sudoers文件的可写权限: chmod u-w /etc/sudoers

FTP服务器搭建

准备工作 下载vsftpd: sudo apt install vsftpd 配置 配置文件位于/etc/vsftpd.conf,格式为<option>=<value>,等号前后不允许空格。 使用man vsftpd.conf命令可以查看配置文件说明。 访问权限配置 # 是否允许匿名登录,默认不允许 # 用户名anonymous和ftp会被当作匿名登录 # 为了安全一般不允许 anonymous_enable=NO # 是否允许匿名上传,默认不允许 # 如果允许则write_enable需要设为YES # 为了安全一般不允许 anon_upload_enable=NO # 允许本地用户登录 local_enable=YES # 允许写入(即上传,下载等操作) write_enable=YES # 文件权限掩码 # 如果使用八进制则需要在前面加0否则当作十进制处理 local_unmask=022 锁定访问目录 # 本地用户登录后通过chroot将家目录设为根目录 chroot_local_user=YES # chroot_list_file中的用户登录后通过chroot将家目录设为根目录 chroot_list_enable=NO # chroot模式下用户根目录允许写入 # 启用chroot_local_user后不设置allow_writeable_chroot=YES会报 # “500 OOPS: vsftpd: refusing to run with writable root inside chroot()”错误 allow_writeable_chroot=YES # 虚拟用户列表,设置默认允许登录的FTP用户 chroot_list_file=/etc/vsftpd.chroot # 定义用户FTP主目录,用户登录成功后vsftpd会切换到此目录 # 此时FTP会位于此目录中,后续上传下载都针对于此目录 local_root=/home/$USER/ftp 端口配置 # 启用独立监听,默认NO # 只监听IPv4 listen=NO # 启用IPv6监听,默认NO listen_ipv6=YES # 启用被动模式,默认YES # 被动模式下,开放数据端口区间为[pasv_min_port, pasv_max_port],具体端口由服务端与客户端协商确定 # 主动模式下开放的数据端口为20 pasv_enable=YES # 被动模式下最大可用端口号,默认0 pasv_max_port=1048 # 被动模式下最小可用端口号,默认0 pasv_min_port=1024 日志配置

DNS服务器搭建

准备工作 下载bind9: sudo apt install bind9 修改配置 修改选项配置文件/etc/bind/named.conf.options: options { listen-on port 53 { 192.168.0.102; }; // 监听地址,设为自己的服务器地址 allow-query { any; }; // any表示可以解析所有主机 directory "/var/cache/bind"; forwarders { 114.114.114.114; }; dnssec-validation no; // listen-on-v6 { any; }; } 修改区域配置文件/etc/bind/named.conf.default-zones: zone "." { type hint; file "/usr/share/dns/root.hints"; } zone "localhost" { type master; file "/etc/bind/db.local"; }; // 域名正向解析 zone "example.com" { type master; // 主服务器 file "/etc/bind/db.example.com"; // 指定区域数据配置文件 }; zone "127.

Virtual Box虚拟机启动报错:rc=-1908

启动虚拟机时出现问题:Kernel driver not installed (rc=-1908) 提示解决错误的办法: sudo modprobe vboxdrv # 报错: # modprobe: ERROR: could not insert 'vboxdrv': Required key not available 解决方法: 执行命令: sudo apt update sudo apt install virtualbox-ext-pack sudo apt install --reinstall linux-headers-$(uname -r) virtualbox-dkms dkms 中间会要求填写一个密码,录入密码后重启机器,进入一个蓝色页面。 选择Enroll MOK > Continue > Yes > 填入刚才设置的密码 > Reboot。 问题解决。

Linux系统创建交换内存

free -m 查看是否开启swap total used free shared buff/cache available Mem: 7622 3257 173 416 4191 3654 Swap: 2047 2 2045 如果未开启,最后一行会显示0 0 0 创建swap文件 sudo mkdir -p /var/swap cd /var/swap sudo dd if=/dev/zero of=swapfile bs=1G count=4 输出: 4+0 records in 4+0 records out 4294967296 bytes (4.3 GB, 4.0 GiB) copied, 10.3505 s, 415 MB/s 激活swap文件 sudo chmod 600 swapfile sudo mkswap swapfile 输出: Setting up swapspace version 1, size = 4 GiB (4294963200 bytes) no label, UUID=f722dd68-95d0-417a-a8a0-113a08050ae1 开启swap