Compare commits

..

No commits in common. "main" and "feat/update-docker-image" have entirely different histories.

17 changed files with 37 additions and 196 deletions

View file

@ -1,7 +1,4 @@
on:
push:
branches:
- main
on: [push]
jobs:
build:
runs-on: docker
@ -9,13 +6,27 @@ jobs:
- name: Checkout code
uses: actions/checkout@v4
- name: Install Pandoc
run: |
apt-get update
apt-get install -y pandoc
- name: Generate guide.html
run: bash update-guide.sh
- name: Install Podman
run: |
apt-get update
apt-get install -y podman
- name: Podman Login
run: |
echo "${{ secrets.DOCKER_PASSWORD }}" | podman login git.interhacker.space --username "${{ secrets.DOCKER_USERNAME }}" --password-stdin
- name: Build and Push Container Image
- name: Build Container Image
run: |
trap 'rm -f dist.zip' EXIT
wget -q -O dist.zip https://git.interhacker.space/epickiwi/2026.camp.carte/releases/download/latest/dist.zip
podman build -t git.interhacker.space/interhack/camp-website-2026:latest .
- name: Push Container Image
run: |
podman push git.interhacker.space/interhack/camp-website-2026:latest

1
.gitignore vendored
View file

@ -1,2 +1 @@
guide.html
dist.zip

View file

@ -1,19 +1,6 @@
FROM docker.io/nginx:1.29-alpine
RUN apk add --update --no-cache unzip bash pandoc sed
COPY dist.zip /tmp/dist.zip
RUN unzip -q /tmp/dist.zip -d /tmp/carte
RUN mkdir -p /usr/share/nginx/html/carte
RUN cp -r /tmp/carte/dist/* /usr/share/nginx/html/carte/
RUN rm -rf /tmp/carte /tmp/dist.zip
COPY guide.template.html .
COPY update-guide.sh .
RUN bash update-guide.sh
COPY *.html /usr/share/nginx/html
RUN mv guide.html /usr/share/nginx/html
COPY assets /usr/share/nginx/html/assets
COPY css /usr/share/nginx/html/css
COPY js /usr/share/nginx/html/js

View file

@ -40,13 +40,11 @@ First, login to the Docker registry:
docker login git.interhacker.space
```
Then, download the map bundle, build and push to the registry:
Then, build and push to the registry:
```bash
wget -q -O dist.zip https://git.interhacker.space/epickiwi/2026.camp.carte/releases/download/latest/dist.zip
docker build -t git.interhacker.space/interhack/camp-website-2026:latest .
docker push git.interhacker.space/interhack/camp-website-2026:latest
rm -f dist.zip
```
The pull process is triggered every five minutes.

View file

@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 640"><!--!Font Awesome Free 7.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2026 Fonticons, Inc.--><path d="M176 96C149.5 96 128 117.5 128 144L128 496C128 522.5 149.5 544 176 544L240 544C266.5 544 288 522.5 288 496L288 144C288 117.5 266.5 96 240 96L176 96zM400 96C373.5 96 352 117.5 352 144L352 496C352 522.5 373.5 544 400 544L464 544C490.5 544 512 522.5 512 496L512 144C512 117.5 490.5 96 464 96L400 96z"/></svg>

Before

Width:  |  Height:  |  Size: 527 B

View file

@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 640"><!--!Font Awesome Free 7.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2026 Fonticons, Inc.--><path d="M187.2 100.9C174.8 94.1 159.8 94.4 147.6 101.6C135.4 108.8 128 121.9 128 136L128 504C128 518.1 135.5 531.2 147.6 538.4C159.7 545.6 174.8 545.9 187.2 539.1L523.2 355.1C536 348.1 544 334.6 544 320C544 305.4 536 291.9 523.2 284.9L187.2 100.9z"/></svg>

Before

Width:  |  Height:  |  Size: 470 B

Binary file not shown.

View file

@ -17,7 +17,6 @@
<a href="index.html">maison</a>
<a href="guide.html">guide</a>
<a href="programme.html">programme</a>
<a href="carte/">carte</a>
<a href="poster.html">poster</a>
<a href="contact.html" class="current">contact</a>
</nav>
@ -42,15 +41,14 @@
</div>
<div>
<h3>Matrix :</h3>
<a href="https://matrix.to/#/#camp-space:matrix.interhacker.space" class="matrix-link">#camp-space:matrix.interhacker.space</a>
<a href="https://matrix.to/#/#camp-space:matrix.interhacker.space" class="matrix-link">#interhack:matrix.interhacker.space</a>
</div>
</section>
</main>
<footer>
<div>
<h2>Association</h2>
<a href="assets/Camp-Interhack_Statuts.pdf" target="_blank">statuts</a>
<a href="assets/reglement-charte.pdf" target="_blank">règlement/charte</a>
<a href="assets/Camp-Interhack_Statuts.pdf">statuts</a>
</div>
<div>
<h2>Interhack</h2>

View file

@ -121,62 +121,3 @@ font-size : 1.5em;
text-align : end;
background: linear-gradient(90deg,rgba(136, 0, 255, 1) 0%, rgba(255, 78, 0, 1) 42%, rgba(255, 191, 62, 1) 100%);
}
.stamp {
overflow: hidden;
position: initial;
top: 100px;
right: 300px;
padding: 10px 20px;
background-color: rgba(255, 0, 0, 0.4);
border: 2px dashed rgba(255, 0, 0, 0.8);
border-radius: 2px;
transform: rotate(10deg);
font-family: 'Courier New', Courier, monospace;
font-size: 1em;
font-weight: bold;
color: rgba(255, 0, 0, 0.9);
text-transform: uppercase;
z-index: 10;
text-shadow: 2px 2px 0px rgba(0, 0, 0, 0.8);
opacity: 1;
transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
background-image: linear-gradient(
135deg,
rgba(128, 0, 0, 0.1) 25%,
rgba(128, 0, 0, 0.4) 50%,
rgba(128, 0, 0, 0.1) 75%
);
background-size: 200% 200%;
animation: scan 3s ease infinite;
}
@keyframes scan {
0% { background-position: 0% 50%; }
50% { background-position: 100% 50%; }
100% { background-position: 0% 50%; }
}
/* Radio Interhack */
#radio-player {
float: left;
z-index: 100000;
background-color: aqua;
height: 1em;
width: 1em;
position: absolute;
bottom: 1em;
right: 1em;
position: fixed;
border-radius: 10%;
}
#radio-button {
background: none;
display: flex;
justify-content: center;
align-items: center;
border: none;
}

View file

@ -23,7 +23,6 @@ BISOUS
<a href="index.html">maison</a>
<a href="guide.html" class="current">guide</a>
<a href="programme.html">programme</a>
<a href="carte/">carte</a>
<a href="poster.html">poster</a>
<a href="contact.html">contact</a>
</nav>

0
guide.tmp.md Normal file
View file

View file

@ -10,7 +10,6 @@
<script src="js/drag.js" defer></script>
<script src="js/progress.js" defer></script>
<script src="js/pop.js" defer></script>
<script src="js/radio.js" defer></script>
<link rel="icon" type="image/x-icon" href="assets/stickers/ecran.png">
<title>Camp Interhack</title>
</head>
@ -20,7 +19,6 @@
<a href="index.html" class="current">maison</a>
<a href="guide.html">guide</a>
<a href="programme.html">programme</a>
<a href="carte/index.html">carte</a>
<a href="poster.html">poster</a>
<a href="contact.html">contact</a>
</nav>
@ -86,6 +84,12 @@
Seule exigence, respecter toutes les marginalités, originalités, bizarreries et normaleries de
chacun·es.</p>
<p>
<h3>
<a class="btn-nice" href="https://grist.interhacker.space/o/camp/forms/jhWe1wCu16LGEu81RTn3Um/4">S'inscrire</a>
</h3>
</p>
<p class="center">
<a href="assets/camp-interhack.ics">📅 Ajouter l'évènement à son calendrier (.ics)</a>
</p>
@ -95,24 +99,20 @@
<section id="progress">
<h3>
<span>Où en est-on ?</span>
<div class="stamp" id="myStamp">COMPLET</div>
</h3>
<!--<p>Il y a</p>
<p>Il y a</p>
<div class="places" >
<div class="places">
<span class="bar">
<span id="gauge-bar" style="width:0" class="progression lessthanhalf">
<span id="gauge-text">?/200</span>
</span>
</span>
</div>
<div>places déjà réservées.</div> -->
<p>places déjà réservées.</p>
<br>
<p>
C'est <b>complet</b> !
<br>
Nous avons reçu en amont</p>
<p>Et nous avons reçu</p>
<div class="places">
<span class="bar">
<span id="fundraising-bar" style="width:0" class="progression lessthanhalf">
@ -121,12 +121,6 @@
</span>
</div>
<p>des dons dont nous avons besoin.</p>
<p>
Merci !!
<br>
Et nous comptons sur vous pour continuer à vous mobiliser avant et durant le camp, pour que l'on puisse atteindre les 100% !
</p>
</section>
@ -158,14 +152,14 @@
</div>
<hr>
<div>
<p>Nous estimons avoir un budget de ~ 15 000€ et être autour de 200 personnes, et aurons donc besoin d'au moins autant pour que le camp soit à l'équilibre.</p>
<p>Nous estimons avoir un budget de 10 000 ~ 15 000€ et être autour de 200 personnes, et aurons donc besoin d'au moins autant pour que le camp soit à l'équilibre.</p>
<a href="https://grist.interhacker.space/o/camp/fCKWivmj4bCX/Budget/p/2">Voir le détail des comptes</a>
</div>
<!--<hr>
<hr>
<div>
<p>Si tu ne sais pas quel prix libre donner, et/ou que tu veux de l'aide pour définir un prix libre juste et éclairé pour ta participation au camp, voici un thunomètre rapide qui peut répondre au besoin.</p>
<a href="assets/Thunometre-participanxes.pdf">Thunomètre</a>
</div>-->
</div>
</section>
<section id="participe">
@ -194,22 +188,11 @@
<p>et bien d'autres !<br> Rejoignez le canal Matrix sur <code>#interhack:matrix.interhacker.space</code></p>
</div>
</section>
<section id="radio-player">
<audio preload=”metadata”>
<source src="http://stream.p-node.org/interhack.mp3" type="audio/mp3">
😥
</audio>
<span id="radio-button">
<img src="assets/play-solid-full.svg" alt="play button">
</span>
</section>
</main>
<footer>
<div>
<h2>Association</h2>
<a href="assets/Camp-Interhack_Statuts.pdf" target="_blank">statuts</a>
<a href="assets/reglement-charte.pdf" target="_blank">règlement/charte</a>
<a href="assets/Camp-Interhack_Statuts.pdf">statuts</a>
</div>
<div>
<h2>Interhack</h2>

View file

@ -1,7 +1,7 @@
const gauge_url = "https://api.camp.interhacker.space/api/gauge"
const fundraising_url = "https://api.camp.interhacker.space/api/fundraising"
const gaugeMax = 200;
const fundraisingTotalMax = 13355.82;
const fundraisingTotalMax = 20000;
async function getGauge() {
// // REMOVE WHEN SIGNUP FORM IS OPEN

View file

@ -1,23 +0,0 @@
// Code Javascript pour la radio du Camp Interhack
// Hébergé par P-Node
// Propulsé par le Radio Operation Center
// En live depuis l'Antenne
const radioPlayer = document.getElementById("radio-player");
const audio = document.querySelector('audio');
const radioButton = document.getElementById("radio-button");
let state = "paused" // Can be : "playing" or "paused"
radioPlayer.addEventListener('click', () => {
if(state == "paused"){
state = "playing";
audio.play();
radioButton.innerHTML = '<img src="assets/pause-solid-full.svg" alt="pause button">';
} else {
state = "paused"
audio.pause();
radioButton.innerHTML = '<img src="assets/play-solid-full.svg" alt="play button">';
}
});

View file

@ -1,47 +0,0 @@
#!/usr/bin/env bash
set -euo pipefail
IMAGE="git.interhacker.space/interhack/camp-website-2026:latest"
REGISTRY="git.interhacker.space"
need_cmd() {
command -v "$1" >/dev/null 2>&1 || {
echo "Missing required command: $1" >&2
exit 1
}
}
need_cmd bash
need_cmd wget
need_cmd pandoc
need_cmd docker
if [[ ! -x ./update-guide.sh ]]; then
echo "Missing or non-executable ./update-guide.sh" >&2
exit 1
fi
echo "==> Generating guide.html"
bash ./update-guide.sh
trap 'rm -f dist.zip' EXIT
echo "==> Downloading map bundle"
wget -q -O dist.zip https://git.interhacker.space/epickiwi/2026.camp.carte/releases/download/latest/dist.zip
echo "==> Logging in to ${REGISTRY}"
if [[ -n "${DOCKER_USERNAME:-}" && -n "${DOCKER_PASSWORD:-}" ]]; then
printf '%s' "$DOCKER_PASSWORD" | docker login "$REGISTRY" --username "$DOCKER_USERNAME" --password-stdin
else
docker login "$REGISTRY"
fi
echo "==> Building image: ${IMAGE}"
docker build --no-cache -t "$IMAGE" .
echo "==> Pushing image: ${IMAGE}"
docker push "$IMAGE"
rm -f dist.zip
echo "Done."

View file

@ -17,7 +17,6 @@
<a href="index.html">maison</a>
<a href="guide.html">guide</a>
<a href="programme.html">programme</a>
<a href="carte/">carte</a>
<a href="poster.html" class="current">poster</a>
<a href="contact.html">contact</a>
</nav>

View file

@ -19,7 +19,6 @@
<a href="index.html">maison</a>
<a href="guide.html">guide</a>
<a href="programme.html" class="current">programme</a>
<a href="carte/">carte</a>
<a href="poster.html">poster</a>
<a href="contact.html">contact</a>
</nav>
@ -82,8 +81,7 @@
<footer>
<div>
<h2>Association</h2>
<a href="assets/Camp-Interhack_Statuts.pdf" target="_blank">statuts</a>
<a href="assets/reglement-charte.pdf" target="_blank">règlement/charte</a>
<a href="assets/Camp-Interhack_Statuts.pdf">statuts</a>
</div>
<div>
<h2>Interhack</h2>