简介
效果展示
使用 sinopia 的好处是,node系的工程师,内部协作时,使用自有 npm 包,会非常方便;另外,sinopia,会缓存已经下载过的包,可以在相当程度上,加速 npm install 相关命令的执行。
工作中,确实有需要用到 sinopia 来作为私有 npm 服务器的场景。原来一直在自己电脑上开启 sinopia。这样做最大的问题是,sinopia 后台一直开着,会越来越耗费资源,电脑最后会变得很卡。偶尔,还会因为忘记开启或关闭 sinopia,带来各种不便利。
今天我试着直接在树莓派上搭建一个 sinopia 服务。最终实现的效果较为完整,基本满足需要了。包含用户权限管理,外网使用自定义域名访问,sinopia服务开机自启等特性。
注意:以下 shell 命令,默认在树莓派的shell中执行,而不是在本机电脑上。
安装最新长期支持版 node 环境
树莓派自带的 node 环境是 v4.8.2,有必要升级下。
安装 nvm
建议安装 nvm,以方便管理多个版本的 node 环境。
# 安装 nvm wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.6/install.sh | bash # 重启shell # 验证 nvm 安装 command -v nvm
使用 nvm 安装最新长期支持版 node 环境
# 安装 Node nvm install --lts #验证安装 --> v8.9.1 node -v
安装和配置 sinopia
安装 sinopia
# 安装 npm install -g sinopia # 验证是否安装成功 --> 这一步会输出自动生成的配置文件路径等信息。 sinopia
解决端口 4873 占用问题
sinopia 启动时,默认使用 4873端口,可能会遇到端口冲突问题。
# 安装 lsof 命令 sudo apt-get update sudo apt-get install lsof # 查看端口占用进程 PID lsof -i :4873 # 杀死占用 4873 端口的进程。4649,要换为实际的 PID。 kill -9 4649
注册一个默认账户
为了提高安全性,我们稍后会禁用 sinopia 的用户注册功能,所以先注册一个默认的 sinopia 账户。需要在当前 shell 中执行 sinopia 命令开启服务之后,再重新打开一个 shell 执行:
npm set registry http://localhost:4873/ npm adduser --registry http://localhost:4873/
用户名,密码,邮箱等,要记牢,适当设置的复杂点。
### 升级安装 vim
感觉树莓派自带的 vim 不太好使了,我也顺便升级了下。
```
# 安装 vim
sudo apt-get update
sudo apt-get install vim
# 配置支持vim中鼠标右键复制
vim ~/.vimrc
```
在 .vimrc 此文件中增加如下一行:
shell set mouse=v
配置 sinopia
配置文件路径可以在执行 sinopia 命令时,从其输出中查看,一般应是 /home/pi/.config/sinopia/config.yaml
基于我的使用使用经验和文档说明,主要配置了以下内容:
max_users: -1 :禁用注册。
*npmjs: url: https://registry.npm.taobao.org* : 设置 npm 镜像为淘宝源,一来可以加速 npm 公共包的安装,二来借助淘宝源的只读特性,避免误操作发布私有 npm 包到外网上。
access: $authenticated:禁止匿名用户访问。配置后,未登录用户看不到 sinopia 上私有包的任何信息。
max_body_size: '200mb':这样设置,会提高安装超级 npm 包的成功率,比如 react-native 。
完整配置内容如下。如果你不是在树莓派上配置,请把 /home/pi 替换为自己真实的用户路径名。
# # This is the default config file. It allows all users to do anything, # so don't use it on production systems. # # Look here for more config file examples: # https://github.com/rlidwka/sinopia/tree/master/conf # # path to a directory with all packages storage: /home/pi/.local/share/sinopia/storage auth: htpasswd: file: ./htpasswd # Maximum amount of users allowed to register, defaults to "+inf". # You can set this to -1 to disable registration. max_users: -1 # a list of other known repositories we can talk to uplinks: npmjs: url: https://registry.npm.taobao.org packages: '@*/*': # scoped packages access: $authenticated publish: $authenticated '*': # allow all users (including non-authenticated users) to read and # publish all packages # # you can specify usernames/groupnames (depending on your auth plugin) # and three keywords: "$all", "$anonymous", "$authenticated" access: $authenticated # allow all known users to publish packages # (anyone can register by default, remember"htmlcode"># 打开配置文件 vim /home/pi/.config/sinopia/config.yaml使用粘贴命令。直接粘贴,格式会错乱。
:set paste i # 右键粘贴即可。配置frpc 远程访问
关于 frp 的配置问题,详见:【小技巧解决大问题】使用 frp 突破阿里云主机无弹性公网 IP 不能用作 Web 服务器的限制。此处只贴出 frpc 的关键配置变更:
[web-sinopia] type = http local_port = 4873 subdomain = sinopia使用 Systemd 实现 sinopia 服务开机自启
树莓派,默认是带有 Systemd 的,直接使用即可:
sudo vim /usr/lib/systemd/system/sinopia.servicesinopia.service 具体内容如下,其中/home/pi/.config/sinopia/config.yaml 要替换为自己的 config.yaml 地址:
[Unit] DescrIPtion=sinopia After=network.target [Service] TimeoutStartSec=30 ExecStart=/home/pi/.nvm/versions/node/v8.9.1/bin/sinopia /home/pi/.config/sinopia/config.yaml ExecStop=/bin/kill $MAINPID Restart=on-failure RestartSec=42s [Install] WantedBy=multi-user.target启动 sinopia 并设置开机启动:
systemctl enable sinopia systemctl start sinopia systemctl status sinopia其他可能有用的命令
# 禁用服务 systemctl disable sinopia # 重新启动服务 systemctl restart sinopia在另一台电脑上使用 sinopia 私有 npm 服务器功能
假定,最终的 sinopia 服务器的外网地址是: *http://sinopia.example.com*
真正想使用,需要在终端中配置下:
npm set registry http://sinopia.example.com npm adduser --registry http://sinopia.example.com npm login配置完毕后,你可以试着发布一个私有 npm 包:
# 在某个文件夹初始化一个新的 npm 包 npm init # 发布到私有 sinopia 服务器: npm publish发布成功后,在浏览器中登录 *http://sinopia.example.com*,刷新页面,应该就能看到自己刚发布的那个包了。
注意,其他用户在使用私有库上的包时,也应该先登录,否则会报错:
unregistered users are not allowed to access package以上这篇使用sinopia 搭建私有npm服务器的教程就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。
更新日志
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]