Compare commits
21 Commits
Author | SHA1 | Date | |
---|---|---|---|
2bd82ceb01
|
|||
641cd0dcdc
|
|||
98b8e9578f | |||
c3cc58f4c9 | |||
c7c32fa386 | |||
cca7eb0ec3 | |||
2afceb8436 | |||
fa15fc36ca | |||
8b6db25695 | |||
5042166604 | |||
72164ee20e | |||
cb951b4b12 | |||
0bb30ccc7b | |||
fd5142020d
|
|||
40f1ea4757
|
|||
eb053df154 | |||
5b518c5884 | |||
d320b20dfc | |||
6fd89b75ab | |||
ae4a930ddb | |||
bc466e7fd9 |
83
.drone.yml
83
.drone.yml
@@ -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
38
.woodpecker/build.yml
Normal 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
|
14
CHANGELOG.md
14
CHANGELOG.md
@@ -2,8 +2,22 @@
|
||||
|
||||
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)
|
||||
|
||||
> 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)
|
||||
- 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)
|
||||
|
@@ -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_TOKEN=null
|
||||
WORKDIR /app
|
||||
@@ -10,7 +10,7 @@ COPY src ./src
|
||||
COPY knexfile.js ./
|
||||
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
|
||||
COPY --from=0 /app /app
|
||||
ENV NODE_ENV production
|
||||
|
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@odit/shortener-backend",
|
||||
"version": "0.7.2",
|
||||
"version": "0.8.0",
|
||||
"main": "index.js",
|
||||
"license": "MIT",
|
||||
"private": false,
|
||||
@@ -25,20 +25,21 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"argon2": "^0.28.2",
|
||||
"dotenv": "^12.0.0",
|
||||
"badge-maker": "^3.3.1",
|
||||
"dotenv": "^16.0.0",
|
||||
"fastify": "^3.20.1",
|
||||
"fastify-auth": "^1.1.0",
|
||||
"fastify-basic-auth": "^2.1.0",
|
||||
"fastify-cors": "^6.0.2",
|
||||
"fastify-jwt": "^4.0.0",
|
||||
"isbot": "^3.3.3",
|
||||
"knex": "0.95.0",
|
||||
"knex": "0.95.15",
|
||||
"sqlite3": "^5.0.2",
|
||||
"uniqid": "^5.3.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"nodemon": "^2.0.12",
|
||||
"release-it": "^14.11.3"
|
||||
"release-it": "^15.0.0"
|
||||
},
|
||||
"release-it": {
|
||||
"git": {
|
||||
|
@@ -3,6 +3,7 @@ var uniqid = require('uniqid');
|
||||
require('dotenv').config();
|
||||
const argon2 = require('argon2');
|
||||
const isBot = require('isbot')
|
||||
const { makeBadge, ValidationError } = require('badge-maker')
|
||||
|
||||
let config = {
|
||||
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
|
||||
fastify.post('/api/auth/register', async (req, res) => {
|
||||
|
Reference in New Issue
Block a user