Compare commits
No commits in common. "main" and "feature-new-docs" have entirely different histories.
main
...
feature-ne
14 changed files with 60 additions and 75 deletions
41
.gitignore
vendored
41
.gitignore
vendored
|
@ -1,28 +1,31 @@
|
||||||
# Allowlisting gitignore template for GO projects prevents us
|
# ---> Go
|
||||||
# from adding various unwanted local files, such as generated
|
# If you prefer the allow list template instead of the deny list, see community template:
|
||||||
# files, developer configurations or IDE-specific files etc.
|
# https://github.com/github/gitignore/blob/main/community/Golang/Go.AllowList.gitignore
|
||||||
#
|
#
|
||||||
# Recommended: Go.AllowList.gitignore
|
# Binaries for programs and plugins
|
||||||
|
*.exe
|
||||||
|
*.exe~
|
||||||
|
*.dll
|
||||||
|
*.so
|
||||||
|
*.dylib
|
||||||
|
|
||||||
# Ignore everything
|
# Test binary, built with `go test -c`
|
||||||
*
|
*.test
|
||||||
|
|
||||||
# But not these files...
|
# Output of the go coverage tool, specifically when used with LiteIDE
|
||||||
!/.gitignore
|
*.out
|
||||||
|
|
||||||
!*.go
|
# Dependency directories (remove the comment below to include it)
|
||||||
!go.sum
|
# vendor/
|
||||||
!go.mod
|
|
||||||
|
|
||||||
!examples/*
|
# Go workspace file
|
||||||
|
go.work
|
||||||
|
|
||||||
!*.md
|
bin/
|
||||||
!LICENSE
|
|
||||||
|
|
||||||
!Makefile
|
examples/testing/
|
||||||
|
|
||||||
# Woodpecker CI
|
*.yaml
|
||||||
!.woodpecker/*
|
!examples/*.yaml
|
||||||
|
|
||||||
# ...even if they are in subdirectories
|
test/
|
||||||
!*/
|
|
||||||
|
|
4
.vscode/launch.json
vendored
4
.vscode/launch.json
vendored
|
@ -9,7 +9,7 @@
|
||||||
"type": "go",
|
"type": "go",
|
||||||
"request": "launch",
|
"request": "launch",
|
||||||
"mode": "auto",
|
"mode": "auto",
|
||||||
"program": "${workspaceFolder}/cmd/certwarden-deploy/main.go",
|
"program": "${workspaceFolder}",
|
||||||
"args": ["--config", "${workspaceFolder}/config.yaml", "--dry-run"]
|
"args": ["--config", "${workspaceFolder}/config.yaml", "--dry-run"]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -17,7 +17,7 @@
|
||||||
"type": "go",
|
"type": "go",
|
||||||
"request": "launch",
|
"request": "launch",
|
||||||
"mode": "auto",
|
"mode": "auto",
|
||||||
"program": "${workspaceFolder}/cmd/certwarden-deploy/main.go",
|
"program": "${workspaceFolder}",
|
||||||
"args": ["--config", "${workspaceFolder}/config.yaml", "--verbose"]
|
"args": ["--config", "${workspaceFolder}/config.yaml", "--verbose"]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
|
@ -20,13 +20,13 @@ steps:
|
||||||
- APP_NAME=certwarden-deploy
|
- APP_NAME=certwarden-deploy
|
||||||
- FORGE=https://code.lila.network
|
- FORGE=https://code.lila.network
|
||||||
commands:
|
commands:
|
||||||
- apk add --update --no-cache xz curl jq make git
|
- apk add --update --no-cache xz curl jq
|
||||||
- make build
|
- go mod download
|
||||||
- cd bin/
|
- go build -o output/$APP_NAME-${CI_COMMIT_TAG##v}-${GOOS}-${GOARCH}${GOARM} main.go
|
||||||
- mv $APP_NAME $APP_NAME-${GOOS}-${GOARCH}${GOARM}
|
- cd output
|
||||||
- xz --keep --compress $APP_NAME-${GOOS}-${GOARCH}${GOARM}
|
- xz --keep --compress $APP_NAME-${CI_COMMIT_TAG##v}-${GOOS}-${GOARCH}${GOARM}
|
||||||
- sha256sum $APP_NAME-${GOOS}-${GOARCH}${GOARM} >> $APP_NAME-${GOOS}-${GOARCH}${GOARM}.sha256
|
- sha256sum $APP_NAME-${CI_COMMIT_TAG##v}-${GOOS}-${GOARCH}${GOARM} >> $APP_NAME-${CI_COMMIT_TAG##v}-${GOOS}-${GOARCH}${GOARM}.sha256
|
||||||
- sha256sum $APP_NAME-${GOOS}-${GOARCH}${GOARM}.xz >> $APP_NAME-${GOOS}-${GOARCH}${GOARM}.xz.sha256
|
- sha256sum $APP_NAME-${CI_COMMIT_TAG##v}-${GOOS}-${GOARCH}${GOARM}.xz >> $APP_NAME-${CI_COMMIT_TAG##v}-${GOOS}-${GOARCH}${GOARM}.xz.sha256
|
||||||
- |-
|
- |-
|
||||||
export RELEASE_ID=`curl --location "$FORGE/api/v1/repos/$CI_REPO/releases?limit=10" \
|
export RELEASE_ID=`curl --location "$FORGE/api/v1/repos/$CI_REPO/releases?limit=10" \
|
||||||
--header 'Accept: application/json' -s -S \
|
--header 'Accept: application/json' -s -S \
|
||||||
|
@ -35,23 +35,23 @@ steps:
|
||||||
curl --location "$FORGE/api/v1/repos/$CI_REPO/releases/$RELEASE_ID/assets" \
|
curl --location "$FORGE/api/v1/repos/$CI_REPO/releases/$RELEASE_ID/assets" \
|
||||||
--header "Authorization: token $FORGEJO_APIKEY" \
|
--header "Authorization: token $FORGEJO_APIKEY" \
|
||||||
--header 'Content-Type: multipart/form-data' -s -S \
|
--header 'Content-Type: multipart/form-data' -s -S \
|
||||||
--form "attachment=@$APP_NAME-${GOOS}-${GOARCH}${GOARM};type=application/octet-stream" \
|
--form "attachment=@$APP_NAME-${CI_COMMIT_TAG##v}-${GOOS}-${GOARCH}${GOARM};type=application/octet-stream" \
|
||||||
--fail-with-body
|
--fail-with-body
|
||||||
- |-
|
- |-
|
||||||
curl --location "$FORGE/api/v1/repos/$CI_REPO/releases/$RELEASE_ID/assets" \
|
curl --location "$FORGE/api/v1/repos/$CI_REPO/releases/$RELEASE_ID/assets" \
|
||||||
--header "Authorization: token $FORGEJO_APIKEY" \
|
--header "Authorization: token $FORGEJO_APIKEY" \
|
||||||
--header 'Content-Type: multipart/form-data' -s -S \
|
--header 'Content-Type: multipart/form-data' -s -S \
|
||||||
--form "attachment=@$APP_NAME-${GOOS}-${GOARCH}${GOARM}.xz;type=application/octet-stream" \
|
--form "attachment=@$APP_NAME-${CI_COMMIT_TAG##v}-${GOOS}-${GOARCH}${GOARM}.xz;type=application/octet-stream" \
|
||||||
--fail-with-body
|
--fail-with-body
|
||||||
- |-
|
- |-
|
||||||
curl --location "$FORGE/api/v1/repos/$CI_REPO/releases/$RELEASE_ID/assets" \
|
curl --location "$FORGE/api/v1/repos/$CI_REPO/releases/$RELEASE_ID/assets" \
|
||||||
--header "Authorization: token $FORGEJO_APIKEY" \
|
--header "Authorization: token $FORGEJO_APIKEY" \
|
||||||
--header 'Content-Type: multipart/form-data' -s -S \
|
--header 'Content-Type: multipart/form-data' -s -S \
|
||||||
--form "attachment=@$APP_NAME-${GOOS}-${GOARCH}${GOARM}.sha256;type=application/octet-stream" \
|
--form "attachment=@$APP_NAME-${CI_COMMIT_TAG##v}-${GOOS}-${GOARCH}${GOARM}.sha256;type=application/octet-stream" \
|
||||||
--fail-with-body
|
--fail-with-body
|
||||||
- |-
|
- |-
|
||||||
curl --location "$FORGE/api/v1/repos/$CI_REPO/releases/$RELEASE_ID/assets" \
|
curl --location "$FORGE/api/v1/repos/$CI_REPO/releases/$RELEASE_ID/assets" \
|
||||||
--header "Authorization: token $FORGEJO_APIKEY" \
|
--header "Authorization: token $FORGEJO_APIKEY" \
|
||||||
--header 'Content-Type: multipart/form-data' -s -S \
|
--header 'Content-Type: multipart/form-data' -s -S \
|
||||||
--form "attachment=@$APP_NAME-${GOOS}-${GOARCH}${GOARM}.xz.sha256;type=application/octet-stream" \
|
--form "attachment=@$APP_NAME-${CI_COMMIT_TAG##v}-${GOOS}-${GOARCH}${GOARM}.xz.sha256;type=application/octet-stream" \
|
||||||
--fail-with-body
|
--fail-with-body
|
||||||
|
|
13
CHANGELOG.md
13
CHANGELOG.md
|
@ -7,16 +7,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||||
|
|
||||||
|
|
||||||
## [Unreleased]
|
## [Unreleased]
|
||||||
## [0.2.2] - 2024-07-30
|
|
||||||
|
|
||||||
### Changed
|
|
||||||
- changed the way the version string is handled internally
|
|
||||||
- CI pipeline changed
|
|
||||||
- documentation is now more sophisticated and has a new theme
|
|
||||||
|
|
||||||
### Added
|
|
||||||
- Makefile
|
|
||||||
|
|
||||||
## [0.2.1] - 2024-07-12
|
## [0.2.1] - 2024-07-12
|
||||||
### Fixed
|
### Fixed
|
||||||
- Configuration validation did not work as intended
|
- Configuration validation did not work as intended
|
||||||
|
@ -50,8 +40,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||||
- some documentation
|
- some documentation
|
||||||
|
|
||||||
|
|
||||||
[unreleased]: https://code.lila.network/adoralaura/certwarden-deploy/compare/0.2.2...HEAD
|
[unreleased]: https://code.lila.network/adoralaura/certwarden-deploy/compare/0.2.1...HEAD
|
||||||
[0.2.2]: https://code.lila.network/adoralaura/certwarden-deploy/compare/0.2.1...0.2.2
|
|
||||||
[0.2.1]: https://code.lila.network/adoralaura/certwarden-deploy/compare/0.2.0...0.2.1
|
[0.2.1]: https://code.lila.network/adoralaura/certwarden-deploy/compare/0.2.0...0.2.1
|
||||||
[0.2.0]: https://code.lila.network/adoralaura/certwarden-deploy/compare/0.1.1...0.2.0
|
[0.2.0]: https://code.lila.network/adoralaura/certwarden-deploy/compare/0.1.1...0.2.0
|
||||||
[0.1.1]: https://code.lila.network/adoralaura/certwarden-deploy/compare/0.1.0...0.1.1
|
[0.1.1]: https://code.lila.network/adoralaura/certwarden-deploy/compare/0.1.0...0.1.1
|
||||||
|
|
13
Makefile
13
Makefile
|
@ -1,13 +0,0 @@
|
||||||
# Set the default Go build flags
|
|
||||||
GOFLAGS = -ldflags='-w -s -X constants.Version=$(VERSION)'
|
|
||||||
|
|
||||||
# Build the application
|
|
||||||
build:
|
|
||||||
go build $(GOFLAGS) -o bin/certwarden-deploy cmd/certwarden-deploy/main.go
|
|
||||||
|
|
||||||
# Clean the build artifacts
|
|
||||||
clean:
|
|
||||||
rm -rf bin
|
|
||||||
|
|
||||||
# Set a version for the build
|
|
||||||
VERSION := $(shell git describe --tags --always)
|
|
|
@ -12,9 +12,9 @@ Installation of the required CertWarden instance is out of scope of this documen
|
||||||
To quickly get started with `certwarden-deploy`, just download the binary...
|
To quickly get started with `certwarden-deploy`, just download the binary...
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
# this downloads certwarden-deploy version 0.2.2
|
# this downloads certwarden-deploy version 0.2.1
|
||||||
# to /usr/local/bin/certwarden-deploy
|
# to /usr/local/bin/certwarden-deploy
|
||||||
sudo wget https://code.lila.network/adoralaura/certwarden-deploy/releases/download/0.2.2/certwarden-deploy-linux-amd64 -O /usr/local/bin/certwarden-deploy
|
sudo wget https://code.lila.network/adoralaura/certwarden-deploy/releases/download/0.2.1/certwarden-deploy-0.2.1-linux-amd64 -O /usr/local/bin/certwarden-deploy
|
||||||
|
|
||||||
sudo chmod +x /usr/local/bin/certwarden-deploy
|
sudo chmod +x /usr/local/bin/certwarden-deploy
|
||||||
```
|
```
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
Copyright © 2024 Laura Kalb <dev@lauka.net>
|
Copyright © 2024 Laura Kalb <dev@lauka.net>
|
||||||
The code of this project is available under the MIT license. See the LICENSE file for more info.
|
The code of this project is available under the MIT license. See the LICENSE file for more info.
|
||||||
*/
|
*/
|
||||||
package main
|
package cmd
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"os"
|
"os"
|
||||||
|
@ -11,7 +11,9 @@ import (
|
||||||
"code.lila.network/adoralaura/certwarden-deploy/internal/configuration"
|
"code.lila.network/adoralaura/certwarden-deploy/internal/configuration"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
// Execute adds all child commands to the root command and sets flags appropriately.
|
||||||
|
// This is called by main.main(). It only needs to happen once to the rootCmd.
|
||||||
|
func Execute() {
|
||||||
err := cli.RootCmd.Execute()
|
err := cli.RootCmd.Execute()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
os.Exit(1)
|
os.Exit(1)
|
2
docs/.gitignore
vendored
2
docs/.gitignore
vendored
|
@ -11,5 +11,3 @@ hugo.linux
|
||||||
|
|
||||||
# Temporary lock file while building
|
# Temporary lock file while building
|
||||||
/.hugo_build.lock
|
/.hugo_build.lock
|
||||||
|
|
||||||
!**.html
|
|
||||||
|
|
|
@ -16,8 +16,7 @@ uniqueHomePage = false # change to false to add sidebar to homepage
|
||||||
disableLanguageSwitchingButton = false
|
disableLanguageSwitchingButton = false
|
||||||
editURL = "https://code.lila.network/adoralaura/certwarden-deploy/_edit/main/docs/content/${FilePath}"
|
editURL = "https://code.lila.network/adoralaura/certwarden-deploy/_edit/main/docs/content/${FilePath}"
|
||||||
externalLinkTarget = "_blank"
|
externalLinkTarget = "_blank"
|
||||||
headingPre = '<script defer src="https://esseles.adora.codes/script.js" data-website-id="fe4ec517-25b2-4e0d-b502-6bd3a7420849"></script>'
|
|
||||||
disableExplicitIndexURLs = true
|
|
||||||
|
|
||||||
[params.author]
|
[params.author]
|
||||||
name = 'Adora Laura Kalb'
|
name = 'Adora Laura Kalb'
|
||||||
|
|
|
@ -17,9 +17,9 @@ Installation of the required CertWarden instance is out of scope of this documen
|
||||||
To quickly get started with `certwarden-deploy`, just download the binary...
|
To quickly get started with `certwarden-deploy`, just download the binary...
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
# this downloads certwarden-deploy version 0.2.2
|
# this downloads certwarden-deploy version 0.2.1
|
||||||
# to /usr/local/bin/certwarden-deploy
|
# to /usr/local/bin/certwarden-deploy
|
||||||
sudo wget https://code.lila.network/adoralaura/certwarden-deploy/releases/download/0.2.2/certwarden-deploy-linux-amd64 -O /usr/local/bin/certwarden-deploy
|
sudo wget https://code.lila.network/adoralaura/certwarden-deploy/releases/download/0.2.1/certwarden-deploy-0.2.1-linux-amd64 -O /usr/local/bin/certwarden-deploy
|
||||||
|
|
||||||
sudo chmod +x /usr/local/bin/certwarden-deploy
|
sudo chmod +x /usr/local/bin/certwarden-deploy
|
||||||
```
|
```
|
||||||
|
|
|
@ -59,7 +59,7 @@ This string defines the file path where the downloaded private key will be saved
|
||||||
|
|
||||||
`action` (optional):
|
`action` (optional):
|
||||||
This string specifies a command to run after a certificate is updated or when the --force flag is used during execution.
|
This string specifies a command to run after a certificate is updated or when the --force flag is used during execution.
|
||||||
The example uses a systemd reload command for the popular reverse proxy named "caddy".
|
The example uses a systemd reload command for the popular reverse named "caddy".
|
||||||
|
|
||||||
Example Configuration:
|
Example Configuration:
|
||||||
```yaml
|
```yaml
|
||||||
|
@ -82,4 +82,4 @@ Use code with caution.
|
||||||
|
|
||||||
## Notes
|
## Notes
|
||||||
- This documentation assumes you have a basic understanding of YAML syntax. Resources for learning YAML are readily available online.
|
- This documentation assumes you have a basic understanding of YAML syntax. Resources for learning YAML are readily available online.
|
||||||
- Replace placeholder values like `examplekey_notvalid_hrzjGDDw8z` with your actual API keys.
|
- Replace placeholder values like examplekey_notvalid_hrzjGDDw8z with your actual API keys.
|
||||||
|
|
|
@ -1,2 +0,0 @@
|
||||||
{{ .Params.headingPost | safeHTML }}
|
|
||||||
<script defer src="https://esseles.adora.codes/script.js" data-website-id="fe4ec517-25b2-4e0d-b502-6bd3a7420849"></script>
|
|
|
@ -1,9 +1,7 @@
|
||||||
package constants
|
package constants
|
||||||
|
|
||||||
var Version string
|
const Version = "0.2.1"
|
||||||
|
|
||||||
var UserAgent = "certwarden-deploy/" + Version + " +https://code.lila.network/adoralaura/certwarden-deploy"
|
|
||||||
|
|
||||||
const CertificateApiPath = "/certwarden/api/v1/download/certificates/"
|
const CertificateApiPath = "/certwarden/api/v1/download/certificates/"
|
||||||
const KeyApiPath = "/certwarden/api/v1/download/privatekeys/"
|
const KeyApiPath = "/certwarden/api/v1/download/privatekeys/"
|
||||||
const ApiKeyHeaderName = "X-API-Key"
|
const ApiKeyHeaderName = "X-API-Key"
|
||||||
|
const UserAgent = "certwarden-deploy/" + Version + " +https://code.lila.network/adoralaura/certwarden-deploy"
|
||||||
|
|
11
main.go
Normal file
11
main.go
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
/*
|
||||||
|
Copyright © 2024 Laura Kalb <dev@lauka.net>
|
||||||
|
The code of this project is available under the MIT license. See the LICENSE file for more info.
|
||||||
|
*/
|
||||||
|
package main
|
||||||
|
|
||||||
|
import cmd "code.lila.network/adoralaura/certwarden-deploy/cmd/certwarden-deploy"
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
cmd.Execute()
|
||||||
|
}
|
Loading…
Reference in a new issue