0
Fork 0
mirror of https://github.com/verdaccio/verdaccio.git synced 2024-12-23 22:27:34 -05:00
verdaccio/website/blog/2018-11-19-setting-up-verdaccio-on-digitalocean.md
Sergio Moreno a6b0d63afb
feat: migrate Verdaccio.org to Docusaurus v2 and new design (#2343)
Co-authored-by: Juan Picado <juanpicado19@gmail.com>
2021-07-27 21:52:49 +02:00

127 lines
4.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
author: Juan Picado
authorURL: https://twitter.com/jotadeveloper
authorFBID: 1122901551
title: Setting up Verdaccio on DigitalOcean
---
This one of the multiple articles I will write about running Verdaccio on multiple platforms.
This time for simplicity Ive chosen [DigitalOcean](https://www.digitalocean.com/) that provides affordable base prices and if you want to run your own registry, its a good option.
<!--truncate-->
### Create a Droplet {#create-a-droplet}
![](https://cdn-images-1.medium.com/max/1024/1*04T_T0af4mEZrJq4QBKKcQ.png)<figcaption>Choosing an image before creating a droplet</figcaption>
Create a droplet is fairly easy, it just matters to choose an image and click on create, **I personally selected a Node.js 8.10.0 version** to simplify the setup.
![](https://cdn-images-1.medium.com/max/1024/1*V1GIMttiMPYuX8FLKuumRg.png)<figcaption>A view of the droplet panel</figcaption>
While the droplet is created, which takes a matter of seconds the next step is to find a way to log in via SSH, you can find credentials in your email. _Keep on mind the droplet provides root access and the next steps I wont use sudo_.
### Installing Requirements {#installing-requirements}
As first step we have to install [Verdaccio](https://verdaccio.org/) with the following command.
```
npm install --global verdaccio
```
> We will use npm for simplicity, but Id recommend using other tools as [pnpm](https://pnpm.js.org/) or [yarn](https://yarnpkg.com/en/).
We will handle the **verdaccio** process using the _pm2_ tool that provides handy tools for restarting and monitoring.
```
npm install -g pm2
```
#### Nginx Configuration {#nginx-configuration}
To handle the request we will set up _ngnix_ which is really easy to install. I wont include in this article all steps to setup the web but you can [follow this article](https://www.digitalocean.com/community/tutorials/how-to-install-nginx-on-ubuntu-16-04).
Once _nginx_ is running in the port 80, we have to modify lightly the configuration file as follow
```
vi /etc/nginx/sites-available/default
location / {
proxy\_pass [http://127.0.0.1:4873/](http://127.0.0.1:4873/);
proxy\_set\_header Host $http\_host;
}
```
_You might pimp this configuration if you wish, but, for simplicity this is good enough for the purpose of this article._
Dont forget restart _nginx_ in order the changes take affect.
```
systemctl restart nginx
```
Since we are using a proxy, we must update the default configuration provided by **verdaccio** to define our proxy pass domain. Edit the file and add the your domain or IP.
```
vi /root/verdaccio//config.yaml
http\_proxy: http://xxx.xxx.xxx.xxx/
```
### Running Verdaccio {#running-verdaccio}
Previously we installed pm2 and now is the moment to run _verdaccio_ with the following command.
```
pm2 start `which verdaccio`
```
_Note: notice we are using which due pm2 seems not to be able to run a node global command._
### Using Verdaccio {#using-verdaccio}
Verdaccio provides a nice UI to browse your packages you can access via URL, in our case get the IP from the DigitalOcean control panel and access _verdaccio_ like http://xxx.xxx.xxx.xxx/ .
![](https://cdn-images-1.medium.com/max/1024/1*l5oyR93jMLDOJnYUv88IZg.png)
#### Install packages {#install-packages}
npm will use the default registry on install, but we are willing to use our own registry, to achieve that use the --registry argument to provide a different location.
```
npm install --registry http://xxx.xxx.xxx.xxx
```
Other options Id suggest if you need to switch between registries is using nrm, to install it just do
```
npm install --global nrm
nrm add company-registry [http://xxx.xxx.xxx:4873](http://xxx.xxx.xxx:4873/)
nrm use company-registry
```
With the steps above, you can switch back to other registries in an easy way, for more information just type nrm --help .
#### Publishing Packages {#publishing-packages}
By default verdaccio requires authentication for publishing, thus we need to log in.
```
npm adduser --registry http://xxx.xxx.xxx.xxx
```
Once you are logged, its the moment to publish.
```
npm publish --registry http://xxx.xxx.xxx.xxx
```
### Wrapping Up {#wrapping-up}
As you can see, **host a registry is quite cheap and the initial set up might take fairly short time if you have some skills with UNIX**.
> Verdaccio provides you good performance for a small middle team with the default plugins, you might scale for bigger teams if is need it, but I will write about those topics in future articles.
If you are willing to share your experience in our blog writing about **_verdaccio_** being installed on other platforms, just [send me a message over our chat at Discord](http://chat.verdaccio.org) for easy coordination.
---