mirror of https://github.com/pikami/cosmium.git
Compare commits
3 Commits
398584368f
...
ec5f82cd54
Author | SHA1 | Date |
---|---|---|
Pijus Kamandulis | ec5f82cd54 | |
Pijus Kamandulis | 26dcd68ace | |
Pijus Kamandulis | 86c0275410 |
|
@ -7,6 +7,7 @@ on:
|
||||||
|
|
||||||
permissions:
|
permissions:
|
||||||
contents: write
|
contents: write
|
||||||
|
packages: write
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
goreleaser:
|
goreleaser:
|
||||||
|
@ -20,6 +21,12 @@ jobs:
|
||||||
uses: actions/setup-go@v5
|
uses: actions/setup-go@v5
|
||||||
with:
|
with:
|
||||||
go-version: 1.21.6
|
go-version: 1.21.6
|
||||||
|
- name: Docker Login
|
||||||
|
uses: docker/login-action@v3
|
||||||
|
with:
|
||||||
|
registry: ghcr.io
|
||||||
|
username: ${{ github.actor }}
|
||||||
|
password: ${{ secrets.GITHUB_TOKEN }}
|
||||||
- name: Run GoReleaser
|
- name: Run GoReleaser
|
||||||
uses: goreleaser/goreleaser-action@v5
|
uses: goreleaser/goreleaser-action@v5
|
||||||
with:
|
with:
|
||||||
|
|
|
@ -31,5 +31,22 @@ brews:
|
||||||
name: pikami
|
name: pikami
|
||||||
email: git@pikami.org
|
email: git@pikami.org
|
||||||
|
|
||||||
|
dockers:
|
||||||
|
- image_templates:
|
||||||
|
- "ghcr.io/pikami/{{ .ProjectName }}:{{ .Version }}"
|
||||||
|
- "ghcr.io/pikami/{{ .ProjectName }}:latest"
|
||||||
|
dockerfile: Dockerfile
|
||||||
|
use: docker
|
||||||
|
build_flag_templates:
|
||||||
|
- "--platform=linux/amd64"
|
||||||
|
- "--pull"
|
||||||
|
- "--label=org.opencontainers.image.title={{.ProjectName}}"
|
||||||
|
- "--label=org.opencontainers.image.description=Lightweight Cosmos DB emulator"
|
||||||
|
- "--label=org.opencontainers.image.url=https://github.com/pikami/cosmium"
|
||||||
|
- "--label=org.opencontainers.image.source=https://github.com/pikami/cosmium"
|
||||||
|
- "--label=org.opencontainers.image.created={{.Date}}"
|
||||||
|
- "--label=org.opencontainers.image.revision={{.FullCommit}}"
|
||||||
|
- "--label=org.opencontainers.image.version={{.Version}}"
|
||||||
|
|
||||||
checksum:
|
checksum:
|
||||||
name_template: 'checksums.txt'
|
name_template: 'checksums.txt'
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
FROM scratch
|
||||||
|
|
||||||
|
WORKDIR /app
|
||||||
|
COPY cosmium /app/cosmium
|
||||||
|
|
||||||
|
ENTRYPOINT ["/app/cosmium"]
|
20
README.md
20
README.md
|
@ -47,6 +47,17 @@ If you want to run Cosmos DB Explorer alongside Cosmium, you'll need to build it
|
||||||
|
|
||||||
Once running, the explorer can be reached by navigating following URL: `https://127.0.0.1:8081/_explorer/` (might be different depending on your configuration).
|
Once running, the explorer can be reached by navigating following URL: `https://127.0.0.1:8081/_explorer/` (might be different depending on your configuration).
|
||||||
|
|
||||||
|
### Running with docker (optional)
|
||||||
|
|
||||||
|
If you wan to run the application using docker, configure it using environment variables see example:
|
||||||
|
```sh
|
||||||
|
docker run --rm \
|
||||||
|
-e Persist=/save.json \
|
||||||
|
-v ./save.json:/save.json \
|
||||||
|
-p 8081:8081 \
|
||||||
|
ghcr.io/pikami/cosmium
|
||||||
|
```
|
||||||
|
|
||||||
### SSL Certificate
|
### SSL Certificate
|
||||||
|
|
||||||
By default, Cosmium uses a pre-generated SSL certificate. You can provide your own certificates by specifying paths to the SSL certificate and key (PEM format) using the `-Cert` and `-CertKey` arguments, respectively.
|
By default, Cosmium uses a pre-generated SSL certificate. You can provide your own certificates by specifying paths to the SSL certificate and key (PEM format) using the `-Cert` and `-CertKey` arguments, respectively.
|
||||||
|
@ -65,5 +76,14 @@ To disable SSL and run Cosmium on HTTP instead, you can use the `-DisableTls` fl
|
||||||
|
|
||||||
These arguments allow you to configure various aspects of Cosmium's behavior according to your requirements.
|
These arguments allow you to configure various aspects of Cosmium's behavior according to your requirements.
|
||||||
|
|
||||||
|
All mentioned arguments can also be set using environment variables:
|
||||||
|
* **COSMIUM_ACCOUNTKEY** for `-AccountKey`
|
||||||
|
* **COSMIUM_DISABLEAUTH** for `-DisableAuth`
|
||||||
|
* **COSMIUM_HOST** for `-Host`
|
||||||
|
* **COSMIUM_INITIALDATA** for `-InitialData`
|
||||||
|
* **COSMIUM_PERSIST** for `-Persist`
|
||||||
|
* **COSMIUM_PORT** for `-Port`
|
||||||
|
* **COSMIUM_DEBUG** for `-Debug`
|
||||||
|
|
||||||
# License
|
# License
|
||||||
This project is [MIT licensed](./LICENSE).
|
This project is [MIT licensed](./LICENSE).
|
||||||
|
|
|
@ -3,10 +3,13 @@ package config
|
||||||
import (
|
import (
|
||||||
"flag"
|
"flag"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"os"
|
||||||
|
"strings"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
DefaultAccountKey = "C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw=="
|
DefaultAccountKey = "C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw=="
|
||||||
|
EnvPrefix = "COSMIUM_"
|
||||||
)
|
)
|
||||||
|
|
||||||
var Config = ServerConfig{}
|
var Config = ServerConfig{}
|
||||||
|
@ -25,6 +28,7 @@ func ParseFlags() {
|
||||||
debug := flag.Bool("Debug", false, "Runs application in debug mode, this provides additional logging")
|
debug := flag.Bool("Debug", false, "Runs application in debug mode, this provides additional logging")
|
||||||
|
|
||||||
flag.Parse()
|
flag.Parse()
|
||||||
|
setFlagsFromEnvironment()
|
||||||
|
|
||||||
Config.Host = *host
|
Config.Host = *host
|
||||||
Config.Port = *port
|
Config.Port = *port
|
||||||
|
@ -42,3 +46,17 @@ func ParseFlags() {
|
||||||
Config.DatabaseEndpoint = fmt.Sprintf("https://%s:%d/", Config.Host, Config.Port)
|
Config.DatabaseEndpoint = fmt.Sprintf("https://%s:%d/", Config.Host, Config.Port)
|
||||||
Config.AccountKey = *accountKey
|
Config.AccountKey = *accountKey
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func setFlagsFromEnvironment() (err error) {
|
||||||
|
flag.VisitAll(func(f *flag.Flag) {
|
||||||
|
name := EnvPrefix + strings.ToUpper(strings.Replace(f.Name, "-", "_", -1))
|
||||||
|
if value, ok := os.LookupEnv(name); ok {
|
||||||
|
err2 := flag.Set(f.Name, value)
|
||||||
|
if err2 != nil {
|
||||||
|
err = fmt.Errorf("failed setting flag from environment: %w", err2)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue