Compare commits

..

No commits in common. "main" and "feature-new-docs" have entirely different histories.

14 changed files with 60 additions and 75 deletions

41
.gitignore vendored
View file

@ -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
View file

@ -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"]
} }
] ]

View file

@ -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

View file

@ -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

View file

@ -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)

View file

@ -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
``` ```

View file

@ -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
View file

@ -11,5 +11,3 @@ hugo.linux
# Temporary lock file while building # Temporary lock file while building
/.hugo_build.lock /.hugo_build.lock
!**.html

View file

@ -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'

View file

@ -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
``` ```

View file

@ -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.

View file

@ -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>

View file

@ -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
View 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()
}