commit 0373c588f8610b2a8a7e6ffb94141f56e3ef24e4 Author: Tommy Parnell Date: Thu Jan 6 15:13:32 2022 -0500 init diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..bb4e3da --- /dev/null +++ b/Dockerfile @@ -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 \ No newline at end of file diff --git a/Readme.md b/Readme.md new file mode 100644 index 0000000..a5456aa --- /dev/null +++ b/Readme.md @@ -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) \ No newline at end of file diff --git a/config.yaml b/config.yaml new file mode 100644 index 0000000..2410f96 --- /dev/null +++ b/config.yaml @@ -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 \ No newline at end of file diff --git a/render.yaml b/render.yaml new file mode 100644 index 0000000..4c8e4f3 --- /dev/null +++ b/render.yaml @@ -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 \ No newline at end of file