This commit is contained in:
Tommy Parnell
2022-01-06 15:13:32 -05:00
commit 0373c588f8
4 changed files with 138 additions and 0 deletions

10
Dockerfile Normal file
View File

@@ -0,0 +1,10 @@
FROM verdaccio/verdaccio
USER root
ENV NODE_ENV=production
RUN yarn install
RUN yarn add verdaccio-github-oauth-ui
COPY config.yaml /verdaccio/conf
USER verdaccio

15
Readme.md Normal file
View File

@@ -0,0 +1,15 @@
## What is this?
This is a deploy to [render](https://render.com) button for [Verdaccio](https://verdaccio.org/) with github authentication enabled. Render is akin to heroku but has persistent storage, and generally much cheaper (includes a free tier).
[![Deploy to Render](https://render.com/images/deploy-to-render-button.svg)](https://render.com/deploy)
## How to use this
* Fork this repo. **You must not use this repo to press the button** if you do any changes to this repo will sync to your infrastructure.
* Press the button in your fork
## Looking for a clean slate?
Checkout [my plain template here](https://github.com/TerribleDev/verdaccio-deploy-to-render)

96
config.yaml Normal file
View File

@@ -0,0 +1,96 @@
#
# This is the config file used for the docker images.
# It allows all users to do anything, so don't use it on production systems.
#
# Do not configure host and port under `listen` in this file
# as it will be ignored when using docker.
# see https://verdaccio.org/docs/en/docker#docker-and-custom-port-configuration
#
# Look here for more config file examples:
# https://github.com/verdaccio/verdaccio/tree/master/conf
#
# path to a directory with all packages
storage: /verdaccio/storage/data
# path to a directory with plugins to include
plugins: /verdaccio/plugins
web:
# WebUI is enabled as default, if you want disable it, just uncomment this line
#enable: false
title: Verdaccio
# comment out to disable gravatar support
# gravatar: false
# by default packages are ordercer ascendant (asc|desc)
# sort_packages: asc
# darkMode: true
# logo: http://somedomain/somelogo.png
# favicon: http://somedomain/favicon.ico | /path/favicon.ico
# rateLimit:
# windowMs: 1000
# max: 10000
# translate your registry, api i18n not available yet
# i18n:
# list of the available translations https://github.com/verdaccio/ui/tree/master/i18n/translations
# web: en-US
auth:
github-oauth-ui:
client-id: GITHUB_CLIENT_ID
client-secret: GITHUB_CLIENT_SECRET
org: GITHUB_ORG
# a list of other known repositories we can talk to
uplinks:
npmjs:
url: https://registry.npmjs.org/
packages:
'@*/*':
# scoped packages
access: $authenticated
publish: $authenticated
unpublish: $authenticated
proxy: npmjs
'**':
# you can specify usernames/groupnames (depending on your auth plugin)
# and three keywords: "$all", "$anonymous", "$authenticated"
access: $authenticated
# allow all known users to publish/publish packages
# (anyone can register by default, remember?)
publish: $authenticated
unpublish: $authenticated
# if package is not available locally, proxy requests to 'npmjs' registry
proxy: npmjs
# You can specify HTTP/1.1 server keep alive timeout in seconds for incoming connections.
# A value of 0 makes the http server behave similarly to Node.js versions prior to 8.0.0, which did not have a keep-alive timeout.
# WORKAROUND: Through given configuration you can workaround following issue https://github.com/verdaccio/verdaccio/issues/301. Set to 0 in case 60 is not enough.
server:
keepAliveTimeout: 60
middlewares:
github-oauth-ui:
enabled: true
# log settings
logs: { type: stdout, format: pretty, level: http }
user_agent: true
#experiments:
# # support for npm token command
# token: false
# # enable tarball URL redirect for hosting tarball with a different server, the tarball_url_redirect can be a template string
# tarball_url_redirect: 'https://mycdn.com/verdaccio/${packageName}/${filename}'
# # the tarball_url_redirect can be a function, takes packageName and filename and returns the url, when working with a js configuration file
# tarball_url_redirect(packageName, filename) {
# const signedUrl = // generate a signed url
# return signedUrl;
# }
# This affect the web and api (not developed yet)
#i18n:
#web: en-US

17
render.yaml Normal file
View File

@@ -0,0 +1,17 @@
services:
- type: web
name: verdaccio
region: oregon # optional (defaults to oregon)
plan: starter # optional (defaults to starter)
env: docker
disk:
name: verdaccio-data
mountPath: /verdaccio/storage
sizeGB: 1 # optional
envVars:
- key: GITHUB_CLIENT_ID
sync: false
- key: GITHUB_CLIENT_SECRET
sync: false
- key: GITHUB_ORG
sync: false