{"id":21698619,"url":"https://github.com/theohbrothers/docker-easyrsa","last_synced_at":"2025-05-12T20:57:39.772Z","repository":{"id":46029271,"uuid":"326796205","full_name":"theohbrothers/docker-easyrsa","owner":"theohbrothers","description":"Dockerized easyrsa 🐳","archived":false,"fork":false,"pushed_at":"2024-12-29T10:43:27.000Z","size":176,"stargazers_count":1,"open_issues_count":1,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-12-29T11:26:55.680Z","etag":null,"topics":["buildx","docker","easyrsa","easyrsa-pki","easyrsa3","generate-dockerimagevariants"],"latest_commit_sha":null,"homepage":"","language":"Dockerfile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/theohbrothers.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-01-04T20:09:35.000Z","updated_at":"2024-12-29T10:43:29.000Z","dependencies_parsed_at":"2023-10-15T01:41:27.013Z","dependency_job_id":"6c87aa59-49fc-43d1-97cc-69c3588b2c16","html_url":"https://github.com/theohbrothers/docker-easyrsa","commit_stats":null,"previous_names":[],"tags_count":18,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theohbrothers%2Fdocker-easyrsa","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theohbrothers%2Fdocker-easyrsa/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theohbrothers%2Fdocker-easyrsa/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theohbrothers%2Fdocker-easyrsa/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/theohbrothers","download_url":"https://codeload.github.com/theohbrothers/docker-easyrsa/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":235590732,"owners_count":19014832,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["buildx","docker","easyrsa","easyrsa-pki","easyrsa3","generate-dockerimagevariants"],"created_at":"2024-11-25T19:35:33.413Z","updated_at":"2025-05-12T20:57:39.766Z","avatar_url":"https://github.com/theohbrothers.png","language":"Dockerfile","funding_links":[],"categories":[],"sub_categories":[],"readme":"# docker-easyrsa\n\n[![github-actions](https://github.com/theohbrothers/docker-easyrsa/actions/workflows/ci-master-pr.yml/badge.svg?branch=master)](https://github.com/theohbrothers/docker-easyrsa/actions/workflows/ci-master-pr.yml)\n[![github-release](https://img.shields.io/github/v/release/theohbrothers/docker-easyrsa?style=flat-square)](https://github.com/theohbrothers/docker-easyrsa/releases/)\n[![docker-image-size](https://img.shields.io/docker/image-size/theohbrothers/docker-easyrsa/latest)](https://hub.docker.com/r/theohbrothers/docker-easyrsa)\n\nDockerized [`easy-rsa`](https://github.com/OpenVPN/easy-rsa).\n\nThe base image is `alpine`.\n\n## Tags\n\n| Tag | Dockerfile Build Context |\n|:-------:|:---------:|\n| `:3.2.2`, `:latest` | [View](variants/3.2.2) |\n| `:3.2.1` | [View](variants/3.2.1) |\n| `:3.2.0` | [View](variants/3.2.0) |\n| `:3.1.7` | [View](variants/3.1.7) |\n| `:3.1.6` | [View](variants/3.1.6) |\n| `:3.1.5` | [View](variants/3.1.5) |\n| `:3.1.4` | [View](variants/3.1.4) |\n| `:3.1.3` | [View](variants/3.1.3) |\n| `:3.1.2` | [View](variants/3.1.2) |\n| `:3.1.1` | [View](variants/3.1.1) |\n| `:3.1.0` | [View](variants/3.1.0) |\n| `:3.0.9` | [View](variants/3.0.9) |\n| `:3.0.8` | [View](variants/3.0.8) |\n| `:3.0.7` | [View](variants/3.0.7) |\n| `:3.0.6` | [View](variants/3.0.6) |\n| `:3.0.5` | [View](variants/3.0.5) |\n| `:3.0.4` | [View](variants/3.0.4) |\n| `:3.0.3` | [View](variants/3.0.3) |\n| `:3.0.2` | [View](variants/3.0.2) |\n| `:3.0.1` | [View](variants/3.0.1) |\n\nAll images are based on Alpine.\n\n## Usage\n\nIn this image, the PKI will be stored in `/data/pki` (i.e. `EASYRSA_PKI=/data/pki`, see Dockerfile).\n\n```sh\n# Generate /data/pki\ndocker run --rm -it -v data:/data theohbrothers/docker-easyrsa:3.2.2 init-pki\n# Generate CA, server and client certs\ndocker run --rm -it -e EASYRSA_BATCH=true -v data:/data theohbrothers/docker-easyrsa:3.2.2 build-ca nopass\ndocker run --rm -it -e EASYRSA_BATCH=true -v data:/data theohbrothers/docker-easyrsa:3.2.2 build-server-full server-01 nopass\ndocker run --rm -it -e EASYRSA_BATCH=true -v data:/data theohbrothers/docker-easyrsa:3.2.2 build-client-full client-01 nopass\n\n# Alternatively, a nice one liner to do everything\ndocker run --rm -it -e EASYRSA_BATCH=true -v data:/data theohbrothers/docker-easyrsa:3.2.2 sh -c 'set -e; easyrsa init-pki; easyrsa build-ca nopass; easyrsa build-server-full server-01 nopass; easyrsa build-client-full client-01 nopass; find /data/pki'\n```\n\nAccording to [`easy-rsa` documentation](https://github.com/OpenVPN/easy-rsa/blob/v3.0.0/doc/EasyRSA-Advanced.md#configuration-reference), there are four ways to run `easy-rsa`, namely:\n\n- Command-line options\n- Environment variables\n- `vars` file\n- Built-in defaults\n\n### Command line\n\nSee `easy-rsa` documentation on command line options and their matching environment variables [here](https://github.com/OpenVPN/easy-rsa/blob/v3.0.0/doc/EasyRSA-Readme.md#obtaining-and-using-easy-rsa).\n\n### Environment variables\n\nSee `easy-rsa` documentation on environment variables [here](https://github.com/OpenVPN/easy-rsa/blob/v3.0.0/doc/EasyRSA-Advanced.md#environmental-variables-reference).\n\n### `vars` file\n\nSee `easy-rsa` documentation on using `vars` file [here](https://github.com/OpenVPN/easy-rsa/blob/v3.0.0/doc/EasyRSA-Advanced.md#vars-autodetection).\n\nSee an example of a `vars` file [here](https://github.com/OpenVPN/easy-rsa/blob/v3.0.0/easyrsa3/vars.example).\n\n## Development\n\nRequires Windows `powershell` or [`pwsh`](https://github.com/PowerShell/PowerShell).\n\n```powershell\n# Install Generate-DockerImageVariants module: https://github.com/theohbrothers/Generate-DockerImageVariants\nInstall-Module -Name Generate-DockerImageVariants -Repository PSGallery -Scope CurrentUser -Force -Verbose\n\n# Edit ./generate templates\n\n# Generate the variants\nGenerate-DockerImageVariants .\n```\n\n### Variant versions\n\n[versions.json](generate/definitions/versions.json) contains a list of [Semver](https://semver.org/) versions, one per line.\n\nTo update versions in `versions.json`:\n\n```powershell\n./Update-Versions.ps1\n```\n\nTo update versions in `versions.json`, and open a PR for each changed version, and merge successful PRs one after another (to prevent merge conflicts), and finally create a tagged release and close milestone:\n\n```powershell\n$env:GITHUB_TOKEN = 'xxx'\n./Update-Versions.ps1 -PR -AutoMergeQueue -AutoRelease\n```\n\nTo perform a dry run, use `-WhatIf`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftheohbrothers%2Fdocker-easyrsa","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftheohbrothers%2Fdocker-easyrsa","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftheohbrothers%2Fdocker-easyrsa/lists"}