readme, docker update
This commit is contained in:
+10
-7
@@ -1,21 +1,24 @@
|
|||||||
.git
|
.git
|
||||||
.gitignore
|
.gitignore
|
||||||
|
.gitea
|
||||||
Dockerfile
|
Dockerfile
|
||||||
.dockerignore
|
.dockerignore
|
||||||
README.md
|
README.md
|
||||||
LICENSE
|
LICENSE
|
||||||
VERSION
|
|
||||||
node_modules/
|
node_modules/
|
||||||
coverge/
|
coverage/
|
||||||
|
test/
|
||||||
|
|
||||||
# dotenv environment variable files
|
# dotenv environment variable files
|
||||||
.env
|
.env
|
||||||
.env.development.local
|
.env.*
|
||||||
.env.test.local
|
|
||||||
.env.production.local
|
|
||||||
.env.local
|
|
||||||
|
|
||||||
# SQLite database files
|
# SQLite database files
|
||||||
*.sqlite
|
*.sqlite
|
||||||
*.sqlite3
|
*.sqlite3
|
||||||
sqlite*
|
sqlite*
|
||||||
sqldiff
|
sqldiff
|
||||||
|
|
||||||
|
# Archives
|
||||||
|
*.zip
|
||||||
|
*.tar.gz
|
||||||
+6
-1
@@ -18,10 +18,15 @@ USER badgedex
|
|||||||
COPY --chown=badgedex:badgedex . .
|
COPY --chown=badgedex:badgedex . .
|
||||||
|
|
||||||
#Install dependencies
|
#Install dependencies
|
||||||
RUN npm ci --only=production
|
RUN npm ci --omit=dev
|
||||||
|
|
||||||
# Expose API port
|
# Expose API port
|
||||||
EXPOSE 3000
|
EXPOSE 3000
|
||||||
|
|
||||||
|
# Health check
|
||||||
|
HEALTHCHECK --interval=30s --timeout=5s --start-period=5s --retries=3 \
|
||||||
|
CMD wget -qO- http://localhost:3000/version || exit 1
|
||||||
|
|
||||||
#Start node application
|
#Start node application
|
||||||
ENTRYPOINT ["npm"]
|
ENTRYPOINT ["npm"]
|
||||||
|
|
||||||
|
|||||||
@@ -1,95 +1,191 @@
|
|||||||
# badgedex
|
# BadgeDex
|
||||||
|
|
||||||
BadgeDex
|
Badge generátor szolgáltatás – SVG badge-ek készítése GitHub profilokhoz és projektekhez.
|
||||||
|
|
||||||
# BadgeDex API – URL Paraméterek
|
A badge SVG formátumban tér vissza, így közvetlenül beilleszthető HTML-be, Markdownba, vagy `<img>` tag-be.
|
||||||
## Badge
|
|
||||||
|
|
||||||
Az alábbi paraméterekkel szabályozhatod a `/badge` végpont működését:
|
|
||||||
|
|
||||||
| Paraméter | Kötelező | Alapértelmezett érték | Leírás | Példa értékek |
|
|
||||||
|-------------|----------|-----------------------|----------------------------------------------------------------------------------------|------------------------------|
|
|
||||||
| `icon` | Igen |`simpleicons` | A SimpleIcons ikon neve (kisbetű, kötőjellel). | `github`, `docker`, `nginx` |
|
|
||||||
| `label` | Nem |`Simple Icons` | A badge-en megjelenő szöveg. | `MyApp`, `Status` |
|
|
||||||
| `style` | Nem |`rect` | A badge stílusa. rect négyzetes, flat lekerekitett sarkok | `rect`, `flat` |
|
|
||||||
| `bgicon` | Nem |`none` | Icon Háttérszín (hex vagy CSS színnév). Alapértelmezetten átlátszó. | `#fff`, `#222`, `red` |
|
|
||||||
| `bglabel` | Nem |`none` | Label Háttérszín (hex vagy CSS színnév). Alapértelmezetten átlátszó. | `#fff`, `#222`, `red` |
|
|
||||||
| `color` | Nem |`#000000` | Szöveg színe (hex vagy CSS színnév). Harmonizál az icon szinével ha nem kérünk külön. | `#333`, `white` |
|
|
||||||
| `size` | Nem |`24` | Ikon (és badge) magassága pixelben. | `16`, `32`, `64` |
|
|
||||||
| `labelpos` | Nem | `right` | Szöveg pozíciója az ikonhoz képest: `right`, `left`, `above`, `below`. | `left`, `above` |
|
|
||||||
| `fontweight`| Nem | `normal` | Szöveg vastagsága (`normal`, `bold`, `lighter`, szám is lehet pl. `600`). | `bold`, `600` |
|
|
||||||
|
|
||||||
## Példák
|
|
||||||
|
|
||||||
- **Alap badge:**
|
|
||||||
`/badge`
|
|
||||||
|
|
||||||
- **React ikon, label, size: 64, font: bold, fehér label szöveg, sárga label háttérszín, piros ikon háttérszín, label jobbra**
|
|
||||||
`/badge?icon=react&label=React%20expert%20level&size=64&fontweight=bold&color=white&bgicon=red&bglabel=yellow&labelpos=right`
|
|
||||||
|
|
||||||
- **GitHub ikon, piros label háttér, fehér szöveg:**
|
|
||||||
`/badge?icon=github&bglabel=red&color=white`
|
|
||||||
|
|
||||||
- **Szöveg balra, ikon jobbra:**
|
|
||||||
`/badge?labelpos=left`
|
|
||||||
|
|
||||||
- **Szöveg az ikon fölött, félkövér betű:**
|
|
||||||
`/badge?labelpos=above&fontweight=bold`
|
|
||||||
|
|
||||||
- **Nagyobb ikon és szöveg:**
|
|
||||||
`/badge?size=48`
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Tag
|
## API végpontok
|
||||||
|
|
||||||
Az alábbi paraméterekkel szabályozhatod a `/tag` végpont működését:
|
### `GET /badge`
|
||||||
|
|
||||||
| Paraméter | Kötelező | Alapértelmezett érték | Leírás | Példa értékek |
|
SVG badge-et generál egy [Simple Icons](https://simpleicons.org/) ikon és szöveg alapján.
|
||||||
|-------------|----------|-----------------------|----------------------------------------------------------------------------------------|------------------------------|
|
|
||||||
| `tag` | Igen |`badgedex` | A tag tartalma(kisbetű, kötőjellel). | `github`, `docker`, `nginx` |
|
|
||||||
| `label` | Nem |`BadgeDex` | A tag label tartalma. | `MyApp`, `Status` |
|
|
||||||
| `style` | Nem |`rect` | A badge stílusa. rect négyzetes, flat lekerekitett sarkok | `rect`, `flat` |
|
|
||||||
| `bgtag` | Nem |`none` | Icon Háttérszín (hex vagy CSS színnév). Alapértelmezetten átlátszó. | `#fff`, `#222`, `red` |
|
|
||||||
| `bglabel` | Nem |`none` | Label Háttérszín (hex vagy CSS színnév). Alapértelmezetten átlátszó. | `#fff`, `#222`, `red` |
|
|
||||||
| `color` | Nem |`#000000` | Szöveg színe (hex vagy CSS színnév). Harmonizál az icon szinével ha nem kérünk külön. | `#333`, `white` |
|
|
||||||
| `size` | Nem |`24` | Ikon (és badge) magassága pixelben. | `16`, `32`, `64` |
|
|
||||||
| `labelpos` | Nem | `right` | Szöveg pozíciója az ikonhoz képest: `right`, `left`, `above`, `below`. | `left`, `above` |
|
|
||||||
| `fontweight`| Nem | `normal` | Szöveg vastagsága (`normal`, `bold`, `lighter`, szám is lehet pl. `600`). | `bold`, `600` |
|
|
||||||
|
|
||||||
## Példák
|
| Paraméter | Kötelező | Alapértelmezett | Leírás | Példák |
|
||||||
|
|-------------|----------|-----------------|----------------------------------------------------------------------------------------|------------------------------|
|
||||||
|
| `icon` | Nem | `simpleicons` | A SimpleIcons ikon neve (kisbetű, kötőjellel). | `github`, `docker`, `nginx` |
|
||||||
|
| `label` | Nem | *(ikonnév)* | A badge-en megjelenő szöveg. Ha nincs megadva, az ikon neve jelenik meg. | `MyApp`, `Status` |
|
||||||
|
| `style` | Nem | `rect` | Badge stílusa: `rect` (négyzetes) vagy `flat` (lekerekített sarkok). | `rect`, `flat` |
|
||||||
|
| `bgicon` | Nem | `none` | Ikon háttérszín (hex vagy CSS színnév). Alapból átlátszó. | `#fff`, `#222`, `red` |
|
||||||
|
| `bglabel` | Nem | `none` | Label háttérszín (hex vagy CSS színnév). Alapból átlátszó. | `#fff`, `#222`, `red` |
|
||||||
|
| `color` | Nem | *(ikonszín)* | Szöveg színe (hex vagy CSS színnév). Ha nincs megadva, az ikon színét használja. | `#333`, `white` |
|
||||||
|
| `size` | Nem | `24` | Ikon és badge magassága pixelben (8–256). | `16`, `32`, `64` |
|
||||||
|
| `labelpos` | Nem | `right` | Szöveg pozíciója az ikonhoz képest. | `right`, `left`, `above`, `below` |
|
||||||
|
| `fontweight`| Nem | `normal` | Szöveg vastagsága. | `normal`, `bold`, `600` |
|
||||||
|
|
||||||
- **Alap badge:**
|
#### Badge példák
|
||||||
`/badge`
|
|
||||||
|
|
||||||
- **React ikon, label, size: 64, font: bold, fehér label szöveg, sárga label háttérszín, piros ikon háttérszín, label jobbra**
|
```markdown
|
||||||
`/badge?icon=react&label=React%20expert%20level&size=64&fontweight=bold&color=white&bgicon=red&bglabel=yellow&labelpos=right`
|

|
||||||
|
```
|
||||||
|
```
|
||||||
|
/badge
|
||||||
|
```
|
||||||
|
|
||||||
- **GitHub ikon, piros label háttér, fehér szöveg:**
|
```markdown
|
||||||
`/badge?icon=github&bglabel=red&color=white`
|

|
||||||
|
```
|
||||||
|
```
|
||||||
|
/badge?icon=github&bglabel=red&color=white
|
||||||
|
```
|
||||||
|
|
||||||
- **Szöveg balra, ikon jobbra:**
|
```markdown
|
||||||
`/badge?labelpos=left`
|

|
||||||
|
```
|
||||||
|
```
|
||||||
|
/badge?icon=react&label=React%20expert&size=64&fontweight=bold&color=white&bgicon=red&bglabel=yellow&labelpos=right
|
||||||
|
```
|
||||||
|
|
||||||
- **Szöveg az ikon fölött, félkövér betű:**
|
```markdown
|
||||||
`/badge?labelpos=above&fontweight=bold`
|

|
||||||
|
```
|
||||||
|
```
|
||||||
|
/badge?icon=docker&label=Docker&style=flat&bgicon=%232496ED&color=white
|
||||||
|
```
|
||||||
|
|
||||||
- **Nagyobb ikon és szöveg:**
|
```markdown
|
||||||
`/badge?size=48`
|

|
||||||
|
```
|
||||||
|
```
|
||||||
|
/badge?icon=nginx&labelpos=left
|
||||||
|
```
|
||||||
|
|
||||||
|
```markdown
|
||||||
|

|
||||||
|
```
|
||||||
|
```
|
||||||
|
/badge?icon=vue.js&labelpos=above&fontweight=bold&size=48
|
||||||
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
A badge SVG formátumban tér vissza, így közvetlenül beilleszthető HTML-be vagy Markdown
|
### `GET /tag`
|
||||||
|
|
||||||
# Installation
|
Badge-szerű SVG címkét generál szöveges tartalommal (stílus: shields.io-szerű).
|
||||||
|
|
||||||
## Run as Node.js application
|
| Paraméter | Kötelező | Alapértelmezett | Leírás | Példák |
|
||||||
Clone this repo and `npm start`
|
|-------------|----------|-----------------|----------------------------------------------------------------------------------------|------------------------------|
|
||||||
|
| `tag` | Nem | `badgedex` | A tag tartalma (bal oldali szöveg). | `build`, `coverage`, `v1.0` |
|
||||||
|
| `label` | Nem | `BadgeDex` | A label tartalma (jobb oldali szöveg). | `passing`, `95%`, `stable` |
|
||||||
|
| `style` | Nem | `rect` | Stílus: `rect` (négyzetes) vagy `flat` (lekerekített, árnyékolt). | `rect`, `flat` |
|
||||||
|
| `bgtag` | Nem | `none` | Tag háttérszín (hex vagy CSS színnév). | `#555`, `green`, `red` |
|
||||||
|
| `bglabel` | Nem | `none` | Label háttérszín (hex vagy CSS színnév). | `#007ec6`, `blue` |
|
||||||
|
| `color` | Nem | `#000000` | Szöveg színe (hex vagy CSS színnév). | `#fff`, `white` |
|
||||||
|
| `size` | Nem | `24` | Badge magassága pixelben (8–256). | `16`, `20`, `32` |
|
||||||
|
| `fontweight`| Nem | `normal` | Szöveg vastagsága. | `normal`, `bold`, `600` |
|
||||||
|
|
||||||
## Run as Docker service
|
#### Tag példák
|
||||||
|
|
||||||
`docker run -dit --name badgedex -p 3000:3000 badgedex`
|
```markdown
|
||||||
|

|
||||||
|
```
|
||||||
|
```
|
||||||
|
/tag
|
||||||
|
```
|
||||||
|
|
||||||
### Build for self hosted container service
|
```markdown
|
||||||
|

|
||||||
|
```
|
||||||
|
```
|
||||||
|
/tag?tag=build&label=passing&bgtag=%23555&bglabel=green&color=white
|
||||||
|
```
|
||||||
|
|
||||||
`docker build --build-arg VERSION=$(cat VERSION) -t badgedex:$(cat VERSION) .`
|
```markdown
|
||||||
|

|
||||||
|
```
|
||||||
|
```
|
||||||
|
/tag?tag=coverage&label=98%25&bgtag=%23555&bglabel=%23007ec6&color=white
|
||||||
|
```
|
||||||
|
|
||||||
|
```markdown
|
||||||
|

|
||||||
|
```
|
||||||
|
```
|
||||||
|
/tag?tag=license&label=AGPL--v3&bgtag=gray&bglabel=blue&color=white
|
||||||
|
```
|
||||||
|
|
||||||
|
```markdown
|
||||||
|

|
||||||
|
```
|
||||||
|
```
|
||||||
|
/tag?tag=version&label=v0.0.1&style=flat&bgtag=%23333&bglabel=%23007ec6&color=white
|
||||||
|
```
|
||||||
|
|
||||||
|
```markdown
|
||||||
|

|
||||||
|
```
|
||||||
|
```
|
||||||
|
/tag?tag=node.js&label=22.x&bgtag=%23339933&bglabel=black&color=white&size=20
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### `GET /version`
|
||||||
|
|
||||||
|
A szolgáltatás aktuális verzióját adja vissza JSON formátumban.
|
||||||
|
|
||||||
|
```json
|
||||||
|
{ "badgedexVersion": "0.0.1" }
|
||||||
|
```
|
||||||
|
|
||||||
|
A verzió forrása (prioritás szerint):
|
||||||
|
1. `APP_VERSION` környezeti változó
|
||||||
|
2. `VERSION` fájl a projekt gyökerében
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Környezeti változók
|
||||||
|
|
||||||
|
A konfiguráció `.env` fájllal történik (lásd `.env.example`):
|
||||||
|
|
||||||
|
| Változó | Alapértelmezett | Leírás |
|
||||||
|
|-------------|-----------------|------------------------------------------------------|
|
||||||
|
| `PORT` | `3000` | A szerver portja. |
|
||||||
|
| `LOG_LEVEL` | `info` | Logolás szintje: `fatal`, `error`, `warn`, `info`, `debug`, `trace`. |
|
||||||
|
| `NODE_ENV` | `development` | Környezet: `production`, `development`, `test`. |
|
||||||
|
| `APP_VERSION` | *(nincs)* | Verzió override (opcionális, alapból a `VERSION` fájlból olvas). |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Telepítés
|
||||||
|
|
||||||
|
### Node.js alkalmazásként
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git clone <repo-url>
|
||||||
|
cd badgedex
|
||||||
|
npm install
|
||||||
|
npm start
|
||||||
|
```
|
||||||
|
|
||||||
|
A szerver a `http://localhost:3000` címen indul.
|
||||||
|
|
||||||
|
### Docker konténerként
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker build --build-arg VERSION=$(cat VERSION) -t badgedex:$(cat VERSION) .
|
||||||
|
docker run -dit --name badgedex -p 3000:3000 badgedex:$(cat VERSION)
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Fejlesztés
|
||||||
|
|
||||||
|
### Tesztek futtatása
|
||||||
|
|
||||||
|
```bash
|
||||||
|
npm test
|
||||||
|
```
|
||||||
|
|
||||||
|
Jest + Supertest tesztekkel, axios mockkal. A lefedettségi riport automatikusan generálódik.
|
||||||
Reference in New Issue
Block a user