diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..1377554 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +*.swp diff --git a/Dockerfile b/Dockerfile index 4204f55..3528baa 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM golang:1.16 +FROM golang:1.20.2 as build LABEL author="Victor Lacasse-Beaudoin " LABEL license="MIT" @@ -7,9 +7,24 @@ LABEL repo="https://git.agecem.com/agecem/babillard" WORKDIR /go/src/app -COPY . . +COPY go.mod go.sum main.go ./ -RUN go get -d -v . && \ - go install -v . +ADD cmd/ cmd/ -CMD babillard +RUN CGO_ENABLED=0 go build -a -installsuffix cgo -o babillard . + +# Alpine + +FROM alpine:3.17.2 + +RUN apk update && apk upgrade --no-cache + +WORKDIR /app + +ADD contenu/ contenu/ + +ADD static/ static/ + +COPY --from=build /go/src/app/babillard /usr/bin/babillard + +CMD ["babillard", "server"] diff --git a/Makefile b/Makefile deleted file mode 100644 index fed1114..0000000 --- a/Makefile +++ /dev/null @@ -1,11 +0,0 @@ -# SHELL = /bin/sh - -.DEFAULT_GOAL := help - -.PHONY: help -help: ## Show this help - @egrep -h '\s##\s' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-20s\033[0m %s\n", $$1, $$2}' - -.PHONY: build -build: ## Build une image selon ./Dockerfile - docker build -t agecem/babillard:latest . diff --git a/docker-compose.yaml b/docker-compose.yaml new file mode 100644 index 0000000..31c5229 --- /dev/null +++ b/docker-compose.yaml @@ -0,0 +1,15 @@ +services: + server: + restart: unless-stopped + build: . + image: git.agecem.com/agecem/babillard:latest + ports: + - '8080:8080' + volumes: + - 'config:/app/config' + - 'contenu:/app/contenu' + command: ['babillard', 'server', '--config', '/app/config/.babillard.yaml'] + +volumes: + config: + contenu: diff --git a/references/date.js b/references/date.js deleted file mode 100644 index 20be30c..0000000 --- a/references/date.js +++ /dev/null @@ -1,80 +0,0 @@ -document.addEventListener('DOMContentLoaded', (event) => { - startDateTime() -}); - -function startDateTime() { - setDateTime(); - setInterval(function () { - setDateTime() - }, 60000); -} - -function setDateTime() { - document.getElementById("time").innerHTML = currentTime(); - document.getElementById("date").innerHTML = currentDate(); -} - -function currentTime() { - const date = new Date(); - const hours = date.getHours() < 10 ? "0" + date.getHours() : date.getHours(); - const minutes = date.getMinutes() < 10 ? "0" + date.getMinutes() : date.getMinutes(); - - return hours + ":" + minutes; -} - -function currentDate() { - const d = new Date(); - const day = getDayOfWeek(d.getDay()); - const date = d.getDate(); - const month = getMonth(d.getMonth()); - - return day + " " + date + " " + month; -} - -function getDayOfWeek(day) { - switch (day) { - case 0: - return "Dim"; - case 1: - return "Lun"; - case 2: - return "Mar"; - case 3: - return "Mer"; - case 4: - return "Jeu"; - case 5: - return "Ven"; - case 6: - return "Sam"; - } -} - -function getMonth(month) { - switch (month) { - case 0: - return "Jan"; - case 1: - return "Fév"; - case 2: - return "Mar"; - case 3: - return "Avr"; - case 4: - return "Mai"; - case 5: - return "Juin"; - case 6: - return "Juil"; - case 7: - return "Août"; - case 8: - return "Sep"; - case 9: - return "Oct"; - case 10: - return "Nov"; - case 11: - return "Déc"; - } -} diff --git a/references/index.html b/references/index.html deleted file mode 100644 index 1d88010..0000000 --- a/references/index.html +++ /dev/null @@ -1,35 +0,0 @@ - - - - - CMS Signage - - - - - - - - - - - -
- -
- -
- -
-
-
-
- -
-
-
- -
- - - diff --git a/references/messages.js b/references/messages.js deleted file mode 100644 index 4e00eec..0000000 --- a/references/messages.js +++ /dev/null @@ -1,50 +0,0 @@ -const VITESSE_DEFILEMENT = 20; -let elems = []; - -document.addEventListener('DOMContentLoaded', () => { - startMessages() -}); - -function startMessages() { - - fetchMessages(); - - const parent = document.getElementById("text-content"); - - setInterval(() => { - for (const child of parent.children) { - child.style.left = child.getBoundingClientRect().x - 1 + 'px'; - if (child.getBoundingClientRect().right < 0) { - parent.removeChild(child); - if (parent.childElementCount < 10) { - fetchMessages(); - } - } - } - }, VITESSE_DEFILEMENT); -} - -function fetchMessages() { - return new Promise((resolve) => { - fetch('getMessages.php') - .then(response => response.json()) - .then(json => { - Object.values(json).forEach((value) => { - addDiv(value) - }); - resolve() - }); - }); -} - -function addDiv(content) { - const parent = document.getElementById("text-content"); - const lastChild = parent.lastChild; - const elem = document.createElement("div"); - elem.appendChild(document.createTextNode(content)); - parent.appendChild(elem); - if (lastChild != null) { - elem.style.left = lastChild.getBoundingClientRect().right + 50 + "px"; - } - return elem; -}