21 Commits
0.7.2 ... main

Author SHA1 Message Date
2bd82ceb01 Merge branch 'main' of git.odit.services:kauft.es/linkylinky
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2023-11-04 16:43:38 +01:00
641cd0dcdc feat(ci)!: Switch to woodpecker 2023-11-04 16:43:24 +01:00
98b8e9578f Merge pull request 'Update registry.odit.services/hub/library/node Docker tag to v18' (#24) from renovate/registry.odit.services-hub-library-node-18.x into main
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #24
2022-04-30 14:12:57 +00:00
c3cc58f4c9 Merge pull request 'Update dependency release-it to v15' (#25) from renovate/release-it-15.x into main
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #25
2022-04-30 14:10:18 +00:00
c7c32fa386 Update dependency release-it to v15
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2022-04-30 12:47:14 +00:00
cca7eb0ec3 Update registry.odit.services/hub/library/node Docker tag to v18
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2022-04-22 14:46:43 +00:00
2afceb8436 Merge pull request 'Update registry.odit.services/hub/library/node Docker tag to v17.9.0' (#22) from renovate/registry.odit.services-hub-library-node-17.x into main
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #22
2022-04-20 18:04:26 +00:00
fa15fc36ca Update registry.odit.services/hub/library/node Docker tag to v17.9.0
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2022-04-19 20:46:31 +00:00
8b6db25695 Merge pull request 'Update registry.odit.services/hub/library/node Docker tag to v17.7.2' (#21) from renovate/registry.odit.services-hub-library-node-17.x into main
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #21
2022-03-26 17:46:11 +00:00
5042166604 Update registry.odit.services/hub/library/node Docker tag to v17.7.2
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2022-03-22 20:01:13 +00:00
72164ee20e Merge pull request 'Update dependency dotenv to v16' (#20) from renovate/dotenv-16.x into main
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #20
2022-02-04 08:16:24 +00:00
cb951b4b12 Update dependency dotenv to v16
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2022-02-02 21:32:33 +00:00
0bb30ccc7b 🚀RELEASE 0.8.0
All checks were successful
continuous-integration/drone/push Build is passing
2022-02-02 15:33:38 +01:00
fd5142020d Added BADGE API endpoint (no auth needed)
All checks were successful
continuous-integration/drone/push Build is passing
2022-02-02 15:25:55 +01:00
40f1ea4757 Added badge-maker dependency 2022-02-02 15:24:59 +01:00
eb053df154 Merge pull request 'Update dependency dotenv to v15' (#19) from renovate/dotenv-15.x into main
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #19
2022-02-01 20:34:58 +00:00
5b518c5884 Update dependency dotenv to v15
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2022-01-31 05:17:19 +00:00
d320b20dfc Merge pull request 'Update dependency dotenv to v14' (#18) from renovate/dotenv-14.x into main
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #18
2022-01-17 16:39:02 +00:00
6fd89b75ab Merge pull request 'Update dependency knex to v0.95.15' (#16) from renovate/knex-0.x into main
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #16
2022-01-17 16:38:40 +00:00
ae4a930ddb Update dependency dotenv to v14
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2022-01-17 04:01:54 +00:00
bc466e7fd9 Update dependency knex to v0.95.15
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2022-01-16 17:02:25 +00:00
7 changed files with 4292 additions and 89 deletions

View File

@@ -1,83 +0,0 @@
---
kind: secret
name: docker_username
get:
path: odit-registry-builder
name: username
---
kind: secret
name: docker_password
get:
path: odit-registry-builder
name: password
---
kind: secret
name: npmjs_domain
get:
path: odit-npm-bot
name: domain
---
kind: secret
name: npmjs_token
get:
path: odit-npm-bot
name: token
---
kind: pipeline
type: kubernetes
name: build:latest
steps:
- name: docker release
image: plugins/docker
depends_on: [clone]
settings:
username:
from_secret: docker_username
password:
from_secret: docker_password
repo: registry.odit.services/kauft.es/linkylinky
tags:
- latest
registry: registry.odit.services
build_args:
- NPM_REGISTRY_DOMAIN:
from_secret: npmjs_domain
- NPM_REGISTRY_TOKEN:
from_secret: npmjs_token
mtu: 1000
when:
branch:
- main
---
kind: pipeline
type: kubernetes
name: build:tags
steps:
- name: build $DRONE_TAG
image: plugins/docker
depends_on: [clone]
settings:
username:
from_secret: docker_username
password:
from_secret: docker_password
repo: registry.odit.services/kauft.es/linkylinky
tags:
- '${DRONE_TAG}'
registry: registry.odit.services
build_args:
- NPM_REGISTRY_DOMAIN:
from_secret: npmjs_domain
- NPM_REGISTRY_TOKEN:
from_secret: npmjs_token
mtu: 1000
trigger:
event:
- tag

38
.woodpecker/build.yml Normal file
View File

@@ -0,0 +1,38 @@
steps:
- name: build latest
image: woodpeckerci/plugin-docker-buildx
settings:
repo: registry.odit.services/kauft.es/linkylinky
tags:
- latest
registry: registry.odit.services
platforms: linux/amd64,linux/arm64
cache_from: registry.odit.services/kauft.es/linkylinky:latest
username:
from_secret: odit-registry-builder-username
password:
from_secret: odit-registry-builder-password
secrets:
- source: odit-npm-cache-url
target: NPM_REGISTRY_URL
when:
branch: main
event: push
- name: build tag
image: woodpeckerci/plugin-docker-buildx
settings:
repo: registry.odit.services/kauft.es/linkylinky
tags:
- "${CI_COMMIT_TAG}"
registry: registry.odit.services
platforms: linux/amd64,linux/arm64
cache_from: registry.odit.services/kauft.es/linkylinky:latest
username:
from_secret: odit-registry-builder-username
password:
from_secret: odit-registry-builder-password
secrets:
- source: odit-npm-cache-url
target: NPM_REGISTRY_URL
when:
event: tag

View File

@@ -2,8 +2,22 @@
All notable changes to this project will be documented in this file. Dates are displayed in UTC. All notable changes to this project will be documented in this file. Dates are displayed in UTC.
#### [0.8.0](https://git.odit.services/kauft.es/linkylinky/compare/0.7.2...0.8.0)
- Added badge-maker dependency [`40f1ea4`](https://git.odit.services/kauft.es/linkylinky/commit/40f1ea47574cd0cf2ab7ea28d9cd70243da40f27)
- Added BADGE API endpoint (no auth needed) [`fd51420`](https://git.odit.services/kauft.es/linkylinky/commit/fd5142020d46a6117f0f00302690511e18d67d14)
- Merge pull request 'Update dependency dotenv to v15' (#19) from renovate/dotenv-15.x into main [`eb053df`](https://git.odit.services/kauft.es/linkylinky/commit/eb053df154e4598da46c275435a4b1bb9b133119)
- Update dependency dotenv to v15 [`5b518c5`](https://git.odit.services/kauft.es/linkylinky/commit/5b518c58848899da19f50d4d9517ef7749ec26a5)
- Merge pull request 'Update dependency dotenv to v14' (#18) from renovate/dotenv-14.x into main [`d320b20`](https://git.odit.services/kauft.es/linkylinky/commit/d320b20dfca67a79b83caf10735f367aafad7fbb)
- Merge pull request 'Update dependency knex to v0.95.15' (#16) from renovate/knex-0.x into main [`6fd89b7`](https://git.odit.services/kauft.es/linkylinky/commit/6fd89b75abbaac37435f8556da2db2d262d7ede4)
- Update dependency dotenv to v14 [`ae4a930`](https://git.odit.services/kauft.es/linkylinky/commit/ae4a930ddb9bafd89967235342a2ad3954e53e13)
- Update dependency knex to v0.95.15 [`bc466e7`](https://git.odit.services/kauft.es/linkylinky/commit/bc466e7fd97d5292c6a00a36b3abce147c862c6b)
#### [0.7.2](https://git.odit.services/kauft.es/linkylinky/compare/0.7.1...0.7.2) #### [0.7.2](https://git.odit.services/kauft.es/linkylinky/compare/0.7.1...0.7.2)
> 16 January 2022
- 🚀RELEASE 0.7.2 [`2808740`](https://git.odit.services/kauft.es/linkylinky/commit/28087400b79d6790939db34a814850df04364947)
- Pinned knex version (thx sqlite) [`9cf8248`](https://git.odit.services/kauft.es/linkylinky/commit/9cf8248522b31e14c4f6f304f620a3040cc2f496) - Pinned knex version (thx sqlite) [`9cf8248`](https://git.odit.services/kauft.es/linkylinky/commit/9cf8248522b31e14c4f6f304f620a3040cc2f496)
- Merge pull request 'Update dependency dotenv to v12' (#14) from renovate/dotenv-12.x into main [`35fafa3`](https://git.odit.services/kauft.es/linkylinky/commit/35fafa337b81ad79a9f0f3501624ece40bda7967) - Merge pull request 'Update dependency dotenv to v12' (#14) from renovate/dotenv-12.x into main [`35fafa3`](https://git.odit.services/kauft.es/linkylinky/commit/35fafa337b81ad79a9f0f3501624ece40bda7967)
- Docker speedbuild [`36ce64a`](https://git.odit.services/kauft.es/linkylinky/commit/36ce64a79dec5e98dbc90f5d9dbb366bbaaed049) - Docker speedbuild [`36ce64a`](https://git.odit.services/kauft.es/linkylinky/commit/36ce64a79dec5e98dbc90f5d9dbb366bbaaed049)

View File

@@ -1,4 +1,4 @@
FROM registry.odit.services/hub/library/node:17.0.1-alpine3.14 FROM registry.odit.services/hub/library/node:18.0.0-alpine3.14
ARG NPM_REGISTRY_DOMAIN=registry.npmjs.org ARG NPM_REGISTRY_DOMAIN=registry.npmjs.org
ARG NPM_REGISTRY_TOKEN=null ARG NPM_REGISTRY_TOKEN=null
WORKDIR /app WORKDIR /app
@@ -10,7 +10,7 @@ COPY src ./src
COPY knexfile.js ./ COPY knexfile.js ./
RUN mkdir db RUN mkdir db
FROM registry.odit.services/hub/library/node:17.0.1-alpine3.14 FROM registry.odit.services/hub/library/node:18.0.0-alpine3.14
WORKDIR /app WORKDIR /app
COPY --from=0 /app /app COPY --from=0 /app /app
ENV NODE_ENV production ENV NODE_ENV production

View File

@@ -1,6 +1,6 @@
{ {
"name": "@odit/shortener-backend", "name": "@odit/shortener-backend",
"version": "0.7.2", "version": "0.8.0",
"main": "index.js", "main": "index.js",
"license": "MIT", "license": "MIT",
"private": false, "private": false,
@@ -25,20 +25,21 @@
}, },
"dependencies": { "dependencies": {
"argon2": "^0.28.2", "argon2": "^0.28.2",
"dotenv": "^12.0.0", "badge-maker": "^3.3.1",
"dotenv": "^16.0.0",
"fastify": "^3.20.1", "fastify": "^3.20.1",
"fastify-auth": "^1.1.0", "fastify-auth": "^1.1.0",
"fastify-basic-auth": "^2.1.0", "fastify-basic-auth": "^2.1.0",
"fastify-cors": "^6.0.2", "fastify-cors": "^6.0.2",
"fastify-jwt": "^4.0.0", "fastify-jwt": "^4.0.0",
"isbot": "^3.3.3", "isbot": "^3.3.3",
"knex": "0.95.0", "knex": "0.95.15",
"sqlite3": "^5.0.2", "sqlite3": "^5.0.2",
"uniqid": "^5.3.0" "uniqid": "^5.3.0"
}, },
"devDependencies": { "devDependencies": {
"nodemon": "^2.0.12", "nodemon": "^2.0.12",
"release-it": "^14.11.3" "release-it": "^15.0.0"
}, },
"release-it": { "release-it": {
"git": { "git": {

View File

@@ -3,6 +3,7 @@ var uniqid = require('uniqid');
require('dotenv').config(); require('dotenv').config();
const argon2 = require('argon2'); const argon2 = require('argon2');
const isBot = require('isbot') const isBot = require('isbot')
const { makeBadge, ValidationError } = require('badge-maker')
let config = { let config = {
domain: process.env.DOMAIN || "localhost:3000", domain: process.env.DOMAIN || "localhost:3000",
@@ -259,6 +260,40 @@ fastify.get('/api/:shortcode', async (req, res) => {
} }
}); });
//Get url api route
fastify.get('/api/badge/:shortcode', async (req, res) => {
const shortcode = req.params.shortcode;
const label = req.query.label || 'vists';
const color = req.query.color || 'green';
const style = req.query.style || 'for-the-badge';
//This should never happen but better safe than 500
if (!shortcode) {
return 404;
}
const exists = await knex.select('shortcode', 'target', 'no_preview', 'clientside')
.from('urls')
.where('shortcode', '=', shortcode)
.limit(1);
if (exists.length == 0) {
return 404;
}
const visits = await knex.select('timestamp')
.from('visits')
.where('shortcode', '=', shortcode);
const format = {
label,
message: visits.length.toString(),
color,
style
}
res.type('image/svg+xml')
return makeBadge(format);
});
//User registration //User registration
fastify.post('/api/auth/register', async (req, res) => { fastify.post('/api/auth/register', async (req, res) => {

4198
yarn.lock Normal file

File diff suppressed because it is too large Load Diff