Features: - Integrated the first service: [Plausible Analytics](https://plausible.io)! Fixes: - UI/UX fixes and new designs
28 lines
1016 B
JavaScript
28 lines
1016 B
JavaScript
const { execShellAsync } = require('../../../libs/common')
|
|
const { docker } = require('../../../libs/docker')
|
|
|
|
module.exports = async function (fastify) {
|
|
fastify.get('/:serviceName', async (request, reply) => {
|
|
const { serviceName } = request.params
|
|
try {
|
|
const service = (await docker.engine.listServices()).find(r => r.Spec.Labels.managedBy === 'coolify' && r.Spec.Labels.type === 'service' && r.Spec.Labels.serviceName === serviceName && r.Spec.Name === `${serviceName}_${serviceName}`)
|
|
if (service) {
|
|
const payload = {
|
|
config: JSON.parse(service.Spec.Labels.configuration)
|
|
}
|
|
reply.code(200).send(payload)
|
|
} else {
|
|
throw new Error()
|
|
}
|
|
} catch (error) {
|
|
console.log(error)
|
|
throw new Error('No service found?')
|
|
}
|
|
})
|
|
fastify.delete('/:serviceName', async (request, reply) => {
|
|
const { serviceName } = request.params
|
|
await execShellAsync(`docker stack rm ${serviceName}`)
|
|
reply.code(200).send({})
|
|
})
|
|
}
|