mirror of
https://github.com/linuxserver/docker-mastodon.git
synced 2026-01-09 07:21:44 +08:00
Compare commits
304 Commits
develop-v4
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c1fba36432 | ||
|
|
1c0686d6ce | ||
|
|
3812de58bc | ||
|
|
441661550a | ||
|
|
903303689a | ||
|
|
a34e4eb8f8 | ||
|
|
f0fcd6de33 | ||
|
|
668bac1f42 | ||
|
|
b4fd88070e | ||
|
|
b64aed809f | ||
|
|
92ce4a7125 | ||
|
|
cca991a581 | ||
|
|
9d2cdbbe05 | ||
|
|
97ec27cdbc | ||
|
|
4edb4ac106 | ||
|
|
3388589ae7 | ||
|
|
10064307f2 | ||
|
|
eb3a10c05e | ||
|
|
6338457d76 | ||
|
|
494948c132 | ||
|
|
b3066fe680 | ||
|
|
327acfdb4f | ||
|
|
bacd12471a | ||
|
|
e1244ffc9d | ||
|
|
c7b609fdb7 | ||
|
|
b32fd0a792 | ||
|
|
029dd6c7a3 | ||
|
|
058c9bc261 | ||
|
|
8310428c83 | ||
|
|
4ffe933be8 | ||
|
|
5e8f74d781 | ||
|
|
bb469c8958 | ||
|
|
6e75d82b2d | ||
|
|
e5a62f959d | ||
|
|
9a3bd3fb23 | ||
|
|
6d09b87139 | ||
|
|
e4f48a5709 | ||
|
|
fdd61ed994 | ||
|
|
e4365f07d2 | ||
|
|
4ce0e3073a | ||
|
|
71e3318c86 | ||
|
|
10dd49ace1 | ||
|
|
b6c62bf543 | ||
|
|
c4fe9761b5 | ||
|
|
0c551297ce | ||
|
|
fa941c7268 | ||
|
|
4761de2baf | ||
|
|
f0efe5bfb0 | ||
|
|
a847b65e25 | ||
|
|
2bb337c8e4 | ||
|
|
94f32705b3 | ||
|
|
4be520af22 | ||
|
|
f47502ce38 | ||
|
|
d45c170c74 | ||
|
|
5bb8248422 | ||
|
|
75624da629 | ||
|
|
3b0dc5792f | ||
|
|
cce0598620 | ||
|
|
69b074ca6c | ||
|
|
3d6b2d80cc | ||
|
|
8e918548b7 | ||
|
|
b0b4fc10cd | ||
|
|
8fad8be5d6 | ||
|
|
8ecf57e36f | ||
|
|
c7a7c62c1c | ||
|
|
60b81c597b | ||
|
|
db19ddafee | ||
|
|
82f2da7394 | ||
|
|
5f6da86451 | ||
|
|
e66fd30c4f | ||
|
|
5e8f236532 | ||
|
|
4ed56b3c0c | ||
|
|
6f6b848927 | ||
|
|
c342318d8e | ||
|
|
63bed46db5 | ||
|
|
fada2dbd00 | ||
|
|
95e466b902 | ||
|
|
87bc42873e | ||
|
|
c464cfdcb5 | ||
|
|
ab8fcfe77a | ||
|
|
0cacb8f9e0 | ||
|
|
3a838927f6 | ||
|
|
95ac18c518 | ||
|
|
7674efc1d1 | ||
|
|
e3bb710c0e | ||
|
|
fe0b036c1b | ||
|
|
c4fb7428d3 | ||
|
|
0a4a2034a4 | ||
|
|
8ec5bafbf5 | ||
|
|
a028710ae5 | ||
|
|
0ad2baf5a2 | ||
|
|
4ede2f837d | ||
|
|
fb58f99464 | ||
|
|
8a03d9ca1d | ||
|
|
501252e38b | ||
|
|
3633a545d9 | ||
|
|
faeaf95688 | ||
|
|
6b2b4c8416 | ||
|
|
62b78861fb | ||
|
|
5c2f94a837 | ||
|
|
0507976378 | ||
|
|
eea2d63cac | ||
|
|
a50670c917 | ||
|
|
b09a113c1c | ||
|
|
4c5e16ab5e | ||
|
|
4eef32db62 | ||
|
|
1b0a54fcce | ||
|
|
b111d8cf7b | ||
|
|
8abd6fca9d | ||
|
|
3fd4704926 | ||
|
|
08b9a2afcc | ||
|
|
3631ba5559 | ||
|
|
56e2d66c7c | ||
|
|
b31edda75b | ||
|
|
ea76510c8c | ||
|
|
fc01f32ff8 | ||
|
|
cf0785d295 | ||
|
|
3aee160945 | ||
|
|
296db8eab2 | ||
|
|
7e2baf2c5b | ||
|
|
6eb7b5b9f5 | ||
|
|
d9ddf8573e | ||
|
|
aef9570ec7 | ||
|
|
cc0df8a04f | ||
|
|
b0bb4e8a50 | ||
|
|
2889ab6204 | ||
|
|
e55db81f66 | ||
|
|
256a241f41 | ||
|
|
f37d3b7c58 | ||
|
|
af4dfa8fa9 | ||
|
|
1aa7170d8f | ||
|
|
514b0a3b7b | ||
|
|
d40fe7eb8f | ||
|
|
d392b44bd8 | ||
|
|
39da1f946e | ||
|
|
42313f80cc | ||
|
|
b185919500 | ||
|
|
f2ce58d558 | ||
|
|
26c0771081 | ||
|
|
4a09242a89 | ||
|
|
8437ac7bd1 | ||
|
|
f83b184bb8 | ||
|
|
2e06e22d02 | ||
|
|
5862fee0bf | ||
|
|
e5105f4e69 | ||
|
|
654691978a | ||
|
|
44c37a3c9b | ||
|
|
134b647854 | ||
|
|
8e065b136e | ||
|
|
6a613ac4cc | ||
|
|
4fb0d7e271 | ||
|
|
45af94dec7 | ||
|
|
8e84433a96 | ||
|
|
da0e9cbdbb | ||
|
|
2d5781e8ad | ||
|
|
82b9bb10ca | ||
|
|
46651aeeb1 | ||
|
|
9ff780c8e5 | ||
|
|
a5ccb6d6e5 | ||
|
|
405ddaba67 | ||
|
|
50ed318591 | ||
|
|
9a2e119127 | ||
|
|
dd36ba1541 | ||
|
|
125749a6b1 | ||
|
|
304471976b | ||
|
|
dde7978ab8 | ||
|
|
3523c537e1 | ||
|
|
e3050aaec5 | ||
|
|
a66880855f | ||
|
|
562c5cd8de | ||
|
|
c49920887f | ||
|
|
62f00cd732 | ||
|
|
32b578c504 | ||
|
|
28ef7b75d2 | ||
|
|
577fdeb91d | ||
|
|
4982b76dac | ||
|
|
59d3aa6642 | ||
|
|
e71c5f7347 | ||
|
|
c7f19df69f | ||
|
|
c7a61b2777 | ||
|
|
bb3fbe6f11 | ||
|
|
305be63727 | ||
|
|
53f40c9706 | ||
|
|
73f3568110 | ||
|
|
8d69aa4b6f | ||
|
|
18ad184e85 | ||
|
|
cfef996a9a | ||
|
|
c386ca10ad | ||
|
|
f87ee5661f | ||
|
|
c9fdcb66d8 | ||
|
|
1f8ff64bd6 | ||
|
|
22cb313bc2 | ||
|
|
78c7335815 | ||
|
|
1abf1e7cab | ||
|
|
5cb9734111 | ||
|
|
92fb255c48 | ||
|
|
5d85996ca1 | ||
|
|
072fbf7b59 | ||
|
|
2e2bb0f92f | ||
|
|
41703fbfb6 | ||
|
|
d81c039e0f | ||
|
|
27dc724fd5 | ||
|
|
ccf3ca7eef | ||
|
|
60b580db27 | ||
|
|
ceb90c3e2b | ||
|
|
664c2c3304 | ||
|
|
9e47771437 | ||
|
|
94dc78f47b | ||
|
|
15d1d282ed | ||
|
|
effc7acc8e | ||
|
|
12db506423 | ||
|
|
a50f94081e | ||
|
|
464bd258ec | ||
|
|
f74b009bf5 | ||
|
|
ab778b4f4d | ||
|
|
bef257861c | ||
|
|
a3d7e7a587 | ||
|
|
c63b1741dc | ||
|
|
137bc5855f | ||
|
|
499e3b5031 | ||
|
|
5aca204720 | ||
|
|
867c89e98a | ||
|
|
6644f8a073 | ||
|
|
7b2624887b | ||
|
|
6a8af332d8 | ||
|
|
3d9bc11809 | ||
|
|
42a0025e06 | ||
|
|
3b086467da | ||
|
|
f2e0bebeb0 | ||
|
|
5c95911389 | ||
|
|
4768998208 | ||
|
|
910bfab1be | ||
|
|
9593bb722a | ||
|
|
79f35648bd | ||
|
|
f3c37f2ccc | ||
|
|
f356d34772 | ||
|
|
6a405e47ed | ||
|
|
76d9618944 | ||
|
|
f2094f5990 | ||
|
|
64534960e2 | ||
|
|
35bfec2452 | ||
|
|
1bb8b932e3 | ||
|
|
99b3aa7eb3 | ||
|
|
3f3a3db451 | ||
|
|
ef05708429 | ||
|
|
ef25c77c10 | ||
|
|
8605dfa42c | ||
|
|
9db96348d8 | ||
|
|
9ddc96f81e | ||
|
|
2e7219f8ca | ||
|
|
8b4761ecaf | ||
|
|
8fc9488437 | ||
|
|
2a7baeb284 | ||
|
|
9165e79b3b | ||
|
|
667657ceae | ||
|
|
391f5a551c | ||
|
|
819093c636 | ||
|
|
5dd1e66a29 | ||
|
|
b61edee4e4 | ||
|
|
ca19a3741a | ||
|
|
ac3112cfe7 | ||
|
|
1465343540 | ||
|
|
dcf126f4e3 | ||
|
|
b0caf944e8 | ||
|
|
2291e37f17 | ||
|
|
d007271cdd | ||
|
|
fc8865e72c | ||
|
|
50d0fbc4f8 | ||
|
|
ce315a11dc | ||
|
|
69301f7ef7 | ||
|
|
8137a57ea8 | ||
|
|
da99d5f4dd | ||
|
|
45417578c2 | ||
|
|
bb53d16db2 | ||
|
|
512253f8f7 | ||
|
|
f3a21b8ba4 | ||
|
|
7ee614fe6f | ||
|
|
1295403f8b | ||
|
|
e17fedeb58 | ||
|
|
90986e7665 | ||
|
|
bb57a5cedf | ||
|
|
5f83ba10aa | ||
|
|
507292135b | ||
|
|
7f0400c55c | ||
|
|
85ba02315a | ||
|
|
d70a78cc5e | ||
|
|
7aed65d85d | ||
|
|
c66ff879d0 | ||
|
|
6c4bef2401 | ||
|
|
1d49a7b21f | ||
|
|
f8cfb9546d | ||
|
|
8366b63374 | ||
|
|
47974c8756 | ||
|
|
94535578c4 | ||
|
|
eabd4e92e7 | ||
|
|
99d12e3f4a | ||
|
|
a5fa99e76c | ||
|
|
0f98d50b6e | ||
|
|
5bba01780d | ||
|
|
d9362c6e7f | ||
|
|
dd573662c9 | ||
|
|
37a1d6b360 | ||
|
|
c381996576 | ||
|
|
02c579f611 |
4
.github/CONTRIBUTING.md
vendored
4
.github/CONTRIBUTING.md
vendored
@ -24,7 +24,7 @@
|
||||
## Readme
|
||||
|
||||
If you would like to change our readme, please __**do not**__ directly edit the readme, as it is auto-generated on each commit.
|
||||
Instead edit the [readme-vars.yml](https://github.com/linuxserver/docker-mastodon/edit/develop/readme-vars.yml).
|
||||
Instead edit the [readme-vars.yml](https://github.com/linuxserver/docker-mastodon/edit/main/readme-vars.yml).
|
||||
|
||||
These variables are used in a template for our [Jenkins Builder](https://github.com/linuxserver/docker-jenkins-builder) as part of an ansible play.
|
||||
Most of these variables are also carried over to [docs.linuxserver.io](https://docs.linuxserver.io/images/docker-mastodon)
|
||||
@ -115,7 +115,7 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64
|
||||
|
||||
## Update the changelog
|
||||
|
||||
If you are modifying the Dockerfiles or any of the startup scripts in [root](https://github.com/linuxserver/docker-mastodon/tree/develop/root), add an entry to the changelog
|
||||
If you are modifying the Dockerfiles or any of the startup scripts in [root](https://github.com/linuxserver/docker-mastodon/tree/main/root), add an entry to the changelog
|
||||
|
||||
```yml
|
||||
changelogs:
|
||||
|
||||
2
.github/PULL_REQUEST_TEMPLATE.md
vendored
2
.github/PULL_REQUEST_TEMPLATE.md
vendored
@ -21,7 +21,7 @@
|
||||
|
||||
------------------------------
|
||||
|
||||
- [ ] I have read the [contributing](https://github.com/linuxserver/docker-mastodon/blob/develop/.github/CONTRIBUTING.md) guideline and understand that I have made the correct modifications
|
||||
- [ ] I have read the [contributing](https://github.com/linuxserver/docker-mastodon/blob/main/.github/CONTRIBUTING.md) guideline and understand that I have made the correct modifications
|
||||
|
||||
------------------------------
|
||||
|
||||
|
||||
34
.github/workflows/external_trigger.yml
vendored
34
.github/workflows/external_trigger.yml
vendored
@ -7,31 +7,31 @@ permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
external-trigger-develop:
|
||||
external-trigger-main:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4.1.1
|
||||
|
||||
- name: External Trigger
|
||||
if: github.ref == 'refs/heads/develop'
|
||||
if: github.ref == 'refs/heads/main'
|
||||
env:
|
||||
SKIP_EXTERNAL_TRIGGER: ${{ vars.SKIP_EXTERNAL_TRIGGER }}
|
||||
run: |
|
||||
printf "# External trigger for docker-mastodon\n\n" >> $GITHUB_STEP_SUMMARY
|
||||
if grep -q "^mastodon_develop_" <<< "${SKIP_EXTERNAL_TRIGGER}"; then
|
||||
if grep -q "^mastodon_main_" <<< "${SKIP_EXTERNAL_TRIGGER}"; then
|
||||
echo "> [!NOTE]" >> $GITHUB_STEP_SUMMARY
|
||||
echo "> Github organizational variable \`SKIP_EXTERNAL_TRIGGER\` contains \`mastodon_develop_\`; will skip trigger if version matches." >> $GITHUB_STEP_SUMMARY
|
||||
elif grep -q "^mastodon_develop" <<< "${SKIP_EXTERNAL_TRIGGER}"; then
|
||||
echo "> Github organizational variable \`SKIP_EXTERNAL_TRIGGER\` contains \`mastodon_main_\`; will skip trigger if version matches." >> $GITHUB_STEP_SUMMARY
|
||||
elif grep -q "^mastodon_main" <<< "${SKIP_EXTERNAL_TRIGGER}"; then
|
||||
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
|
||||
echo "> Github organizational variable \`SKIP_EXTERNAL_TRIGGER\` contains \`mastodon_develop\`; skipping trigger." >> $GITHUB_STEP_SUMMARY
|
||||
echo "> Github organizational variable \`SKIP_EXTERNAL_TRIGGER\` contains \`mastodon_main\`; skipping trigger." >> $GITHUB_STEP_SUMMARY
|
||||
exit 0
|
||||
fi
|
||||
echo "> [!NOTE]" >> $GITHUB_STEP_SUMMARY
|
||||
echo "> External trigger running off of develop branch. To disable this trigger, add \`mastodon_develop\` into the Github organizational variable \`SKIP_EXTERNAL_TRIGGER\`." >> $GITHUB_STEP_SUMMARY
|
||||
echo "> External trigger running off of main branch. To disable this trigger, add \`mastodon_main\` into the Github organizational variable \`SKIP_EXTERNAL_TRIGGER\`." >> $GITHUB_STEP_SUMMARY
|
||||
printf "\n## Retrieving external version\n\n" >> $GITHUB_STEP_SUMMARY
|
||||
EXT_RELEASE=$(curl -u "${{ secrets.CR_USER }}:${{ secrets.CR_PAT }}" -sX GET "https://api.github.com/repos/mastodon/mastodon/releases" | jq -r '. | first(.[] | select(.prerelease==true)) | .tag_name')
|
||||
echo "Type is \`custom_json\`" >> $GITHUB_STEP_SUMMARY
|
||||
if grep -q "^mastodon_develop_${EXT_RELEASE}" <<< "${SKIP_EXTERNAL_TRIGGER}"; then
|
||||
EXT_RELEASE=$(curl -u "${{ secrets.CR_USER }}:${{ secrets.CR_PAT }}" -sX GET "https://api.github.com/repos/mastodon/mastodon/releases/latest" | jq -r '. | .tag_name')
|
||||
echo "Type is \`github_stable\`" >> $GITHUB_STEP_SUMMARY
|
||||
if grep -q "^mastodon_main_${EXT_RELEASE}" <<< "${SKIP_EXTERNAL_TRIGGER}"; then
|
||||
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
|
||||
echo "> Github organizational variable \`SKIP_EXTERNAL_TRIGGER\` matches current external release; skipping trigger." >> $GITHUB_STEP_SUMMARY
|
||||
exit 0
|
||||
@ -39,7 +39,7 @@ jobs:
|
||||
if [ -z "${EXT_RELEASE}" ] || [ "${EXT_RELEASE}" == "null" ]; then
|
||||
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
|
||||
echo "> Can't retrieve external version, exiting" >> $GITHUB_STEP_SUMMARY
|
||||
FAILURE_REASON="Can't retrieve external version for mastodon branch develop"
|
||||
FAILURE_REASON="Can't retrieve external version for mastodon branch main"
|
||||
GHA_TRIGGER_URL="https://github.com/linuxserver/docker-mastodon/actions/runs/${{ github.run_id }}"
|
||||
curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 16711680,
|
||||
"description": "**Trigger Failed** \n**Reason:** '"${FAILURE_REASON}"' \n**Trigger URL:** '"${GHA_TRIGGER_URL}"' \n"}],
|
||||
@ -50,7 +50,7 @@ jobs:
|
||||
echo "Sanitized external version: \`${EXT_RELEASE_SANITIZED}\`" >> $GITHUB_STEP_SUMMARY
|
||||
echo "Retrieving last pushed version" >> $GITHUB_STEP_SUMMARY
|
||||
image="linuxserver/mastodon"
|
||||
tag="develop"
|
||||
tag="latest"
|
||||
token=$(curl -sX GET \
|
||||
"https://ghcr.io/token?scope=repository%3Alinuxserver%2Fmastodon%3Apull" \
|
||||
| jq -r '.token')
|
||||
@ -96,7 +96,7 @@ jobs:
|
||||
if [ -z "${IMAGE_VERSION}" ]; then
|
||||
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
|
||||
echo "Can't retrieve last pushed version, exiting" >> $GITHUB_STEP_SUMMARY
|
||||
FAILURE_REASON="Can't retrieve last pushed version for mastodon tag develop"
|
||||
FAILURE_REASON="Can't retrieve last pushed version for mastodon tag latest"
|
||||
curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 16711680,
|
||||
"description": "**Trigger Failed** \n**Reason:** '"${FAILURE_REASON}"' \n"}],
|
||||
"username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }}
|
||||
@ -106,14 +106,14 @@ jobs:
|
||||
if [ "${EXT_RELEASE_SANITIZED}" == "${IMAGE_VERSION}" ]; then
|
||||
echo "Sanitized version \`${EXT_RELEASE_SANITIZED}\` already pushed, exiting" >> $GITHUB_STEP_SUMMARY
|
||||
exit 0
|
||||
elif [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-mastodon/job/develop/lastBuild/api/json | jq -r '.building') == "true" ]; then
|
||||
elif [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-mastodon/job/main/lastBuild/api/json | jq -r '.building') == "true" ]; then
|
||||
echo "New version \`${EXT_RELEASE}\` found; but there already seems to be an active build on Jenkins; exiting" >> $GITHUB_STEP_SUMMARY
|
||||
exit 0
|
||||
else
|
||||
if [[ "${artifacts_found}" == "false" ]]; then
|
||||
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
|
||||
echo "> New version detected, but not all artifacts are published yet; skipping trigger" >> $GITHUB_STEP_SUMMARY
|
||||
FAILURE_REASON="New version ${EXT_RELEASE} for mastodon tag develop is detected, however not all artifacts are uploaded to upstream release yet. Will try again later."
|
||||
FAILURE_REASON="New version ${EXT_RELEASE} for mastodon tag latest is detected, however not all artifacts are uploaded to upstream release yet. Will try again later."
|
||||
curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 9802903,
|
||||
"description": "**Trigger Failed** \n**Reason:** '"${FAILURE_REASON}"' \n"}],
|
||||
"username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }}
|
||||
@ -124,7 +124,7 @@ jobs:
|
||||
echo "All artifacts seem to be uploaded." >> $GITHUB_STEP_SUMMARY
|
||||
fi
|
||||
response=$(curl -iX POST \
|
||||
https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-mastodon/job/develop/buildWithParameters?PACKAGE_CHECK=false \
|
||||
https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-mastodon/job/main/buildWithParameters?PACKAGE_CHECK=false \
|
||||
--user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} | grep -i location | sed "s|^[L|l]ocation: \(.*\)|\1|")
|
||||
echo "Jenkins [job queue url](${response%$'\r'})" >> $GITHUB_STEP_SUMMARY
|
||||
echo "Sleeping 10 seconds until job starts" >> $GITHUB_STEP_SUMMARY
|
||||
@ -139,7 +139,7 @@ jobs:
|
||||
--data-urlencode "description=GHA external trigger https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}" \
|
||||
--data-urlencode "Submit=Submit"
|
||||
echo "**** Notifying Discord ****"
|
||||
TRIGGER_REASON="A version change was detected for mastodon tag develop. Old version:${IMAGE_VERSION} New version:${EXT_RELEASE_SANITIZED}"
|
||||
TRIGGER_REASON="A version change was detected for mastodon tag latest. Old version:${IMAGE_VERSION} New version:${EXT_RELEASE_SANITIZED}"
|
||||
curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 9802903,
|
||||
"description": "**Build Triggered** \n**Reason:** '"${TRIGGER_REASON}"' \n**Build URL:** '"${buildurl}display/redirect"' \n"}],
|
||||
"username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }}
|
||||
|
||||
2
.github/workflows/greetings.yml
vendored
2
.github/workflows/greetings.yml
vendored
@ -15,5 +15,5 @@ jobs:
|
||||
- uses: actions/first-interaction@v1
|
||||
with:
|
||||
issue-message: 'Thanks for opening your first issue here! Be sure to follow the relevant issue templates, or risk having this issue marked as invalid.'
|
||||
pr-message: 'Thanks for opening this pull request! Be sure to follow the [pull request template](https://github.com/linuxserver/docker-mastodon/blob/develop/.github/PULL_REQUEST_TEMPLATE.md)!'
|
||||
pr-message: 'Thanks for opening this pull request! Be sure to follow the [pull request template](https://github.com/linuxserver/docker-mastodon/blob/main/.github/PULL_REQUEST_TEMPLATE.md)!'
|
||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
@ -11,7 +11,8 @@ LABEL maintainer="thespad"
|
||||
ENV RAILS_ENV="production" \
|
||||
NODE_ENV="production" \
|
||||
PATH="${PATH}:/app/www/bin" \
|
||||
S6_STAGE2_HOOK="/init-hook"
|
||||
S6_STAGE2_HOOK="/init-hook" \
|
||||
MASTODON_USE_LIBVIPS="true"
|
||||
|
||||
RUN \
|
||||
apk add --no-cache \
|
||||
@ -42,8 +43,8 @@ RUN \
|
||||
echo "**** install mastodon ****" && \
|
||||
mkdir -p /app/www && \
|
||||
if [ -z ${MASTODON_VERSION+x} ]; then \
|
||||
MASTODON_VERSION=$(curl -sX GET "https://api.github.com/repos/mastodon/mastodon/releases" \
|
||||
| jq -r 'first(.[] | select(.prerelease==true)) | .tag_name'); \
|
||||
MASTODON_VERSION=$(curl -sX GET "https://api.github.com/repos/mastodon/mastodon/releases/latest" \
|
||||
| awk '/tag_name/{print $4;exit}' FS='[""]'); \
|
||||
fi && \
|
||||
curl -s -o \
|
||||
/tmp/mastodon.tar.gz -L \
|
||||
@ -104,7 +105,7 @@ RUN \
|
||||
-o -name '*LICENSE*' \
|
||||
-o -name 'Rakefile' \
|
||||
-o -name '.*' \) \
|
||||
-type f -delete
|
||||
-type f -delete
|
||||
|
||||
COPY root/ /
|
||||
|
||||
|
||||
@ -11,7 +11,8 @@ LABEL maintainer="thespad"
|
||||
ENV RAILS_ENV="production" \
|
||||
NODE_ENV="production" \
|
||||
PATH="${PATH}:/app/www/bin" \
|
||||
S6_STAGE2_HOOK="/init-hook"
|
||||
S6_STAGE2_HOOK="/init-hook" \
|
||||
MASTODON_USE_LIBVIPS="true"
|
||||
|
||||
RUN \
|
||||
apk add --no-cache \
|
||||
@ -44,8 +45,8 @@ RUN \
|
||||
echo "**** install mastodon ****" && \
|
||||
mkdir -p /app/www && \
|
||||
if [ -z ${MASTODON_VERSION+x} ]; then \
|
||||
MASTODON_VERSION=$(curl -sX GET "https://api.github.com/repos/mastodon/mastodon/releases" \
|
||||
| jq -r 'first(.[] | select(.prerelease==true)) | .tag_name'); \
|
||||
MASTODON_VERSION=$(curl -sX GET "https://api.github.com/repos/mastodon/mastodon/releases/latest" \
|
||||
| awk '/tag_name/{print $4;exit}' FS='[""]'); \
|
||||
fi && \
|
||||
curl -s -o \
|
||||
/tmp/mastodon.tar.gz -L \
|
||||
@ -106,7 +107,7 @@ RUN \
|
||||
-o -name '*LICENSE*' \
|
||||
-o -name 'Rakefile' \
|
||||
-o -name '.*' \) \
|
||||
-type f -delete
|
||||
-type f -delete
|
||||
|
||||
COPY root/ /
|
||||
|
||||
|
||||
133
Jenkinsfile
vendored
133
Jenkinsfile
vendored
@ -19,8 +19,6 @@ pipeline {
|
||||
DOCKERHUB_TOKEN=credentials('docker-hub-ci-pat')
|
||||
QUAYIO_API_TOKEN=credentials('quayio-repo-api-token')
|
||||
GIT_SIGNING_KEY=credentials('484fbca6-9a4f-455e-b9e3-97ac98785f5f')
|
||||
JSON_URL='https://api.github.com/repos/mastodon/mastodon/releases'
|
||||
JSON_PATH='first(.[] | select(.prerelease==true)) | .tag_name'
|
||||
EXT_GIT_BRANCH = 'main'
|
||||
EXT_USER = 'mastodon'
|
||||
EXT_REPO = 'mastodon'
|
||||
@ -81,7 +79,7 @@ pipeline {
|
||||
script{
|
||||
env.EXIT_STATUS = ''
|
||||
env.LS_RELEASE = sh(
|
||||
script: '''docker run --rm quay.io/skopeo/stable:v1 inspect docker://ghcr.io/${LS_USER}/${CONTAINER_NAME}:develop 2>/dev/null | jq -r '.Labels.build_version' | awk '{print $3}' | grep '\\-ls' || : ''',
|
||||
script: '''docker run --rm quay.io/skopeo/stable:v1 inspect docker://ghcr.io/${LS_USER}/${CONTAINER_NAME}:latest 2>/dev/null | jq -r '.Labels.build_version' | awk '{print $3}' | grep '\\-ls' || : ''',
|
||||
returnStdout: true).trim()
|
||||
env.LS_RELEASE_NOTES = sh(
|
||||
script: '''cat readme-vars.yml | awk -F \\" '/date: "[0-9][0-9].[0-9][0-9].[0-9][0-9]:/ {print $4;exit;}' | sed -E ':a;N;$!ba;s/\\r{0,1}\\n/\\\\n/g' ''',
|
||||
@ -114,7 +112,7 @@ pipeline {
|
||||
script{
|
||||
env.LS_TAG_NUMBER = sh(
|
||||
script: '''#! /bin/bash
|
||||
tagsha=$(git rev-list -n 1 develop-${LS_RELEASE} 2>/dev/null)
|
||||
tagsha=$(git rev-list -n 1 ${LS_RELEASE} 2>/dev/null)
|
||||
if [ "${tagsha}" == "${COMMIT_SHA}" ]; then
|
||||
echo ${LS_RELEASE_NUMBER}
|
||||
elif [ -z "${GIT_COMMIT}" ]; then
|
||||
@ -147,14 +145,21 @@ pipeline {
|
||||
/* ########################
|
||||
External Release Tagging
|
||||
######################## */
|
||||
// If this is a custom json endpoint parse the return to get external tag
|
||||
stage("Set ENV custom_json"){
|
||||
// If this is a stable github release use the latest endpoint from github to determine the ext tag
|
||||
stage("Set ENV github_stable"){
|
||||
steps{
|
||||
script{
|
||||
env.EXT_RELEASE = sh(
|
||||
script: '''curl -s ${JSON_URL} | jq -r ". | ${JSON_PATH}" ''',
|
||||
script: '''curl -H "Authorization: token ${GITHUB_TOKEN}" -s https://api.github.com/repos/${EXT_USER}/${EXT_REPO}/releases/latest | jq -r '. | .tag_name' ''',
|
||||
returnStdout: true).trim()
|
||||
env.RELEASE_LINK = env.JSON_URL
|
||||
}
|
||||
}
|
||||
}
|
||||
// If this is a stable or devel github release generate the link for the build message
|
||||
stage("Set ENV github_link"){
|
||||
steps{
|
||||
script{
|
||||
env.RELEASE_LINK = 'https://github.com/' + env.EXT_USER + '/' + env.EXT_REPO + '/releases/tag/' + env.EXT_RELEASE
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -192,10 +197,10 @@ pipeline {
|
||||
}
|
||||
}
|
||||
}
|
||||
// If this is a develop build use live docker endpoints
|
||||
// If this is a main build use live docker endpoints
|
||||
stage("Set ENV live build"){
|
||||
when {
|
||||
branch "develop"
|
||||
branch "main"
|
||||
environment name: 'CHANGE_ID', value: ''
|
||||
}
|
||||
steps {
|
||||
@ -205,13 +210,13 @@ pipeline {
|
||||
env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/' + env.CONTAINER_NAME
|
||||
env.QUAYIMAGE = 'quay.io/linuxserver.io/' + env.CONTAINER_NAME
|
||||
if (env.MULTIARCH == 'true') {
|
||||
env.CI_TAGS = 'amd64-develop-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm64v8-develop-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
|
||||
env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
|
||||
} else {
|
||||
env.CI_TAGS = 'develop-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
|
||||
env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
|
||||
}
|
||||
env.VERSION_TAG = env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
|
||||
env.META_TAG = 'develop-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
|
||||
env.EXT_RELEASE_TAG = 'develop-version-' + env.EXT_RELEASE_CLEAN
|
||||
env.META_TAG = env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
|
||||
env.EXT_RELEASE_TAG = 'version-' + env.EXT_RELEASE_CLEAN
|
||||
env.BUILDCACHE = 'docker.io/lsiodev/buildcache,registry.gitlab.com/linuxserver.io/docker-jenkins-builder/lsiodev-buildcache,ghcr.io/linuxserver/lsiodev-buildcache,quay.io/linuxserver.io/lsiodev-buildcache'
|
||||
env.CITEST_IMAGETAG = 'latest'
|
||||
}
|
||||
@ -220,7 +225,7 @@ pipeline {
|
||||
// If this is a dev build use dev docker endpoints
|
||||
stage("Set ENV dev build"){
|
||||
when {
|
||||
not {branch "develop"}
|
||||
not {branch "main"}
|
||||
environment name: 'CHANGE_ID', value: ''
|
||||
}
|
||||
steps {
|
||||
@ -230,13 +235,13 @@ pipeline {
|
||||
env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/lsiodev-' + env.CONTAINER_NAME
|
||||
env.QUAYIMAGE = 'quay.io/linuxserver.io/lsiodev-' + env.CONTAINER_NAME
|
||||
if (env.MULTIARCH == 'true') {
|
||||
env.CI_TAGS = 'amd64-develop-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm64v8-develop-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
|
||||
env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
|
||||
} else {
|
||||
env.CI_TAGS = 'develop-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
|
||||
env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
|
||||
}
|
||||
env.VERSION_TAG = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
|
||||
env.META_TAG = 'develop-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
|
||||
env.EXT_RELEASE_TAG = 'develop-version-' + env.EXT_RELEASE_CLEAN
|
||||
env.META_TAG = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
|
||||
env.EXT_RELEASE_TAG = 'version-' + env.EXT_RELEASE_CLEAN
|
||||
env.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.DEV_DOCKERHUB_IMAGE + '/tags/'
|
||||
env.BUILDCACHE = 'docker.io/lsiodev/buildcache,registry.gitlab.com/linuxserver.io/docker-jenkins-builder/lsiodev-buildcache,ghcr.io/linuxserver/lsiodev-buildcache,quay.io/linuxserver.io/lsiodev-buildcache'
|
||||
env.CITEST_IMAGETAG = 'develop'
|
||||
@ -255,13 +260,13 @@ pipeline {
|
||||
env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/lspipepr-' + env.CONTAINER_NAME
|
||||
env.QUAYIMAGE = 'quay.io/linuxserver.io/lspipepr-' + env.CONTAINER_NAME
|
||||
if (env.MULTIARCH == 'true') {
|
||||
env.CI_TAGS = 'amd64-develop-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST + '|arm64v8-develop-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST
|
||||
env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST
|
||||
} else {
|
||||
env.CI_TAGS = 'develop-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST
|
||||
env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST
|
||||
}
|
||||
env.VERSION_TAG = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST
|
||||
env.META_TAG = 'develop-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST
|
||||
env.EXT_RELEASE_TAG = 'develop-version-' + env.EXT_RELEASE_CLEAN
|
||||
env.META_TAG = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST
|
||||
env.EXT_RELEASE_TAG = 'version-' + env.EXT_RELEASE_CLEAN
|
||||
env.CODE_URL = 'https://github.com/' + env.LS_USER + '/' + env.LS_REPO + '/pull/' + env.PULL_REQUEST
|
||||
env.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.PR_DOCKERHUB_IMAGE + '/tags/'
|
||||
env.BUILDCACHE = 'docker.io/lsiodev/buildcache,registry.gitlab.com/linuxserver.io/docker-jenkins-builder/lsiodev-buildcache,ghcr.io/linuxserver/lsiodev-buildcache,quay.io/linuxserver.io/lsiodev-buildcache'
|
||||
@ -300,7 +305,7 @@ pipeline {
|
||||
// Use helper containers to render templated files
|
||||
stage('Update-Templates') {
|
||||
when {
|
||||
branch "develop"
|
||||
branch "main"
|
||||
environment name: 'CHANGE_ID', value: ''
|
||||
expression {
|
||||
env.CONTAINER_NAME != null
|
||||
@ -312,24 +317,24 @@ pipeline {
|
||||
TEMPDIR=$(mktemp -d)
|
||||
docker pull ghcr.io/linuxserver/jenkins-builder:latest
|
||||
# Cloned repo paths for templating:
|
||||
# ${TEMPDIR}/docker-${CONTAINER_NAME}: Cloned branch develop of ${LS_USER}/${LS_REPO} for running the jenkins builder on
|
||||
# ${TEMPDIR}/repo/${LS_REPO}: Cloned branch develop of ${LS_USER}/${LS_REPO} for commiting various templated file changes and pushing back to Github
|
||||
# ${TEMPDIR}/docker-${CONTAINER_NAME}: Cloned branch main of ${LS_USER}/${LS_REPO} for running the jenkins builder on
|
||||
# ${TEMPDIR}/repo/${LS_REPO}: Cloned branch main of ${LS_USER}/${LS_REPO} for commiting various templated file changes and pushing back to Github
|
||||
# ${TEMPDIR}/docs/docker-documentation: Cloned docs repo for pushing docs updates to Github
|
||||
# ${TEMPDIR}/unraid/docker-templates: Cloned docker-templates repo to check for logos
|
||||
# ${TEMPDIR}/unraid/templates: Cloned templates repo for commiting unraid template changes and pushing back to Github
|
||||
git clone --branch develop --depth 1 https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/docker-${CONTAINER_NAME}
|
||||
git clone --branch main --depth 1 https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/docker-${CONTAINER_NAME}
|
||||
docker run --rm -v ${TEMPDIR}/docker-${CONTAINER_NAME}:/tmp -e LOCAL=true -e PUID=$(id -u) -e PGID=$(id -g) ghcr.io/linuxserver/jenkins-builder:latest
|
||||
echo "Starting Stage 1 - Jenkinsfile update"
|
||||
if [[ "$(md5sum Jenkinsfile | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/Jenkinsfile | awk '{ print $1 }')" ]]; then
|
||||
mkdir -p ${TEMPDIR}/repo
|
||||
git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO}
|
||||
cd ${TEMPDIR}/repo/${LS_REPO}
|
||||
git checkout -f develop
|
||||
git checkout -f main
|
||||
cp ${TEMPDIR}/docker-${CONTAINER_NAME}/Jenkinsfile ${TEMPDIR}/repo/${LS_REPO}/
|
||||
git add Jenkinsfile
|
||||
git commit -m 'Bot Updating Templated Files'
|
||||
git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git develop
|
||||
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git develop
|
||||
git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git main
|
||||
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git main
|
||||
echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
|
||||
echo "Updating Jenkinsfile and exiting build, new one will trigger based on commit"
|
||||
rm -Rf ${TEMPDIR}
|
||||
@ -348,13 +353,13 @@ pipeline {
|
||||
mkdir -p ${TEMPDIR}/repo
|
||||
git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO}
|
||||
cd ${TEMPDIR}/repo/${LS_REPO}
|
||||
git checkout -f develop
|
||||
git checkout -f main
|
||||
for i in ${TEMPLATES_TO_DELETE}; do
|
||||
git rm "${i}"
|
||||
done
|
||||
git commit -m 'Bot Updating Templated Files'
|
||||
git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git develop
|
||||
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git develop
|
||||
git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git main
|
||||
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git main
|
||||
echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
|
||||
echo "Deleting old/deprecated templates and exiting build, new one will trigger based on commit"
|
||||
rm -Rf ${TEMPDIR}
|
||||
@ -369,20 +374,20 @@ pipeline {
|
||||
sed -i 's|^changelogs:|# init diagram\\ninit_diagram:\\n\\n# changelog\\nchangelogs:|' readme-vars.yml
|
||||
fi
|
||||
mkdir -p ${TEMPDIR}/d2
|
||||
docker run --rm -v ${TEMPDIR}/d2:/output -e PUID=$(id -u) -e PGID=$(id -g) -e RAW="true" ghcr.io/linuxserver/d2-builder:latest ${CONTAINER_NAME}:develop
|
||||
docker run --rm -v ${TEMPDIR}/d2:/output -e PUID=$(id -u) -e PGID=$(id -g) -e RAW="true" ghcr.io/linuxserver/d2-builder:latest ${CONTAINER_NAME}:latest
|
||||
ls -al ${TEMPDIR}/d2
|
||||
yq -ei ".init_diagram |= load_str(\\"${TEMPDIR}/d2/${CONTAINER_NAME}-develop.d2\\")" readme-vars.yml
|
||||
yq -ei ".init_diagram |= load_str(\\"${TEMPDIR}/d2/${CONTAINER_NAME}-latest.d2\\")" readme-vars.yml
|
||||
if [[ $(md5sum readme-vars.yml | cut -c1-8) != $(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/readme-vars.yml | cut -c1-8) ]]; then
|
||||
echo "'init_diagram' has been updated. Updating repo and exiting build, new one will trigger based on commit."
|
||||
mkdir -p ${TEMPDIR}/repo
|
||||
git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO}
|
||||
cd ${TEMPDIR}/repo/${LS_REPO}
|
||||
git checkout -f develop
|
||||
git checkout -f main
|
||||
cp ${WORKSPACE}/readme-vars.yml ${TEMPDIR}/repo/${LS_REPO}/readme-vars.yml
|
||||
git add readme-vars.yml
|
||||
git commit -m 'Bot Updating Templated Files'
|
||||
git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git develop
|
||||
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git develop
|
||||
git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git main
|
||||
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git main
|
||||
echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
|
||||
echo "Updating templates and exiting build, new one will trigger based on commit"
|
||||
rm -Rf ${TEMPDIR}
|
||||
@ -399,7 +404,7 @@ pipeline {
|
||||
mkdir -p ${TEMPDIR}/repo
|
||||
git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO}
|
||||
cd ${TEMPDIR}/repo/${LS_REPO}
|
||||
git checkout -f develop
|
||||
git checkout -f main
|
||||
cd ${TEMPDIR}/docker-${CONTAINER_NAME}
|
||||
mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/workflows
|
||||
mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/ISSUE_TEMPLATE
|
||||
@ -412,8 +417,8 @@ pipeline {
|
||||
fi
|
||||
git add readme-vars.yml ${TEMPLATED_FILES}
|
||||
git commit -m 'Bot Updating Templated Files'
|
||||
git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git develop
|
||||
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git develop
|
||||
git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git main
|
||||
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git main
|
||||
echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
|
||||
echo "Updating templates and exiting build, new one will trigger based on commit"
|
||||
rm -Rf ${TEMPDIR}
|
||||
@ -514,7 +519,7 @@ pipeline {
|
||||
// Exit the build if the Templated files were just updated
|
||||
stage('Template-exit') {
|
||||
when {
|
||||
branch "develop"
|
||||
branch "main"
|
||||
environment name: 'CHANGE_ID', value: ''
|
||||
environment name: 'FILES_UPDATED', value: 'true'
|
||||
expression {
|
||||
@ -527,10 +532,10 @@ pipeline {
|
||||
}
|
||||
}
|
||||
}
|
||||
// If this is a develop build check the S6 service file perms
|
||||
// If this is a main build check the S6 service file perms
|
||||
stage("Check S6 Service file Permissions"){
|
||||
when {
|
||||
branch "develop"
|
||||
branch "main"
|
||||
environment name: 'CHANGE_ID', value: ''
|
||||
environment name: 'EXIT_STATUS', value: ''
|
||||
}
|
||||
@ -783,7 +788,7 @@ pipeline {
|
||||
// Take the image we just built and dump package versions for comparison
|
||||
stage('Update-packages') {
|
||||
when {
|
||||
branch "develop"
|
||||
branch "main"
|
||||
environment name: 'CHANGE_ID', value: ''
|
||||
environment name: 'EXIT_STATUS', value: ''
|
||||
}
|
||||
@ -806,14 +811,14 @@ pipeline {
|
||||
echo "Package tag sha from current packages in buit container is ${NEW_PACKAGE_TAG} comparing to old ${PACKAGE_TAG} from github"
|
||||
if [ "${NEW_PACKAGE_TAG}" != "${PACKAGE_TAG}" ]; then
|
||||
git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/${LS_REPO}
|
||||
git --git-dir ${TEMPDIR}/${LS_REPO}/.git checkout -f develop
|
||||
git --git-dir ${TEMPDIR}/${LS_REPO}/.git checkout -f main
|
||||
cp ${TEMPDIR}/package_versions.txt ${TEMPDIR}/${LS_REPO}/
|
||||
cd ${TEMPDIR}/${LS_REPO}/
|
||||
wait
|
||||
git add package_versions.txt
|
||||
git commit -m 'Bot Updating Package Versions'
|
||||
git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git develop
|
||||
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git develop
|
||||
git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git main
|
||||
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git main
|
||||
echo "true" > /tmp/packages-${COMMIT_SHA}-${BUILD_NUMBER}
|
||||
echo "Package tag updated, stopping build process"
|
||||
else
|
||||
@ -831,7 +836,7 @@ pipeline {
|
||||
// Exit the build if the package file was just updated
|
||||
stage('PACKAGE-exit') {
|
||||
when {
|
||||
branch "develop"
|
||||
branch "main"
|
||||
environment name: 'CHANGE_ID', value: ''
|
||||
environment name: 'PACKAGE_UPDATED', value: 'true'
|
||||
environment name: 'EXIT_STATUS', value: ''
|
||||
@ -845,7 +850,7 @@ pipeline {
|
||||
// Exit the build if this is just a package check and there are no changes to push
|
||||
stage('PACKAGECHECK-exit') {
|
||||
when {
|
||||
branch "develop"
|
||||
branch "main"
|
||||
environment name: 'CHANGE_ID', value: ''
|
||||
environment name: 'PACKAGE_UPDATED', value: 'false'
|
||||
environment name: 'EXIT_STATUS', value: ''
|
||||
@ -899,7 +904,7 @@ pipeline {
|
||||
-e DOCKER_LOGS_TIMEOUT=\"${CI_DELAY}\" \
|
||||
-e TAGS=\"${CI_TAGS}\" \
|
||||
-e META_TAG=\"${META_TAG}\" \
|
||||
-e RELEASE_TAG=\"develop\" \
|
||||
-e RELEASE_TAG=\"latest\" \
|
||||
-e PORT=\"${CI_PORT}\" \
|
||||
-e SSL=\"${CI_SSL}\" \
|
||||
-e BASE=\"${DIST_IMAGE}\" \
|
||||
@ -939,7 +944,7 @@ pipeline {
|
||||
CACHEIMAGE=${i}
|
||||
fi
|
||||
done
|
||||
docker buildx imagetools create --prefer-index=false -t ${PUSHIMAGE}:${META_TAG} -t ${PUSHIMAGE}:develop -t ${PUSHIMAGE}:${EXT_RELEASE_TAG} ${CACHEIMAGE}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} || \
|
||||
docker buildx imagetools create --prefer-index=false -t ${PUSHIMAGE}:${META_TAG} -t ${PUSHIMAGE}:latest -t ${PUSHIMAGE}:${EXT_RELEASE_TAG} ${CACHEIMAGE}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} || \
|
||||
{ if [[ "${PUSHIMAGE}" != "${QUAYIMAGE}" ]]; then exit 1; fi; }
|
||||
if [ -n "${SEMVER}" ]; then
|
||||
docker buildx imagetools create --prefer-index=false -t ${PUSHIMAGE}:${SEMVER} ${CACHEIMAGE}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} || \
|
||||
@ -968,9 +973,9 @@ pipeline {
|
||||
CACHEIMAGE=${i}
|
||||
fi
|
||||
done
|
||||
docker buildx imagetools create --prefer-index=false -t ${MANIFESTIMAGE}:amd64-${META_TAG} -t ${MANIFESTIMAGE}:amd64-develop -t ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${CACHEIMAGE}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} || \
|
||||
docker buildx imagetools create --prefer-index=false -t ${MANIFESTIMAGE}:amd64-${META_TAG} -t ${MANIFESTIMAGE}:amd64-latest -t ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${CACHEIMAGE}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} || \
|
||||
{ if [[ "${MANIFESTIMAGE}" != "${QUAYIMAGE}" ]]; then exit 1; fi; }
|
||||
docker buildx imagetools create --prefer-index=false -t ${MANIFESTIMAGE}:arm64v8-${META_TAG} -t ${MANIFESTIMAGE}:arm64v8-develop -t ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} ${CACHEIMAGE}:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} || \
|
||||
docker buildx imagetools create --prefer-index=false -t ${MANIFESTIMAGE}:arm64v8-${META_TAG} -t ${MANIFESTIMAGE}:arm64v8-latest -t ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} ${CACHEIMAGE}:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} || \
|
||||
{ if [[ "${MANIFESTIMAGE}" != "${QUAYIMAGE}" ]]; then exit 1; fi; }
|
||||
if [ -n "${SEMVER}" ]; then
|
||||
docker buildx imagetools create --prefer-index=false -t ${MANIFESTIMAGE}:amd64-${SEMVER} ${CACHEIMAGE}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} || \
|
||||
@ -980,7 +985,7 @@ pipeline {
|
||||
fi
|
||||
done
|
||||
for MANIFESTIMAGE in "${IMAGE}" "${GITLABIMAGE}" "${GITHUBIMAGE}" "${QUAYIMAGE}"; do
|
||||
docker buildx imagetools create -t ${MANIFESTIMAGE}:develop ${MANIFESTIMAGE}:amd64-develop ${MANIFESTIMAGE}:arm64v8-develop || \
|
||||
docker buildx imagetools create -t ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:amd64-latest ${MANIFESTIMAGE}:arm64v8-latest || \
|
||||
{ if [[ "${MANIFESTIMAGE}" != "${QUAYIMAGE}" ]]; then exit 1; fi; }
|
||||
docker buildx imagetools create -t ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG} || \
|
||||
{ if [[ "${MANIFESTIMAGE}" != "${QUAYIMAGE}" ]]; then exit 1; fi; }
|
||||
@ -998,7 +1003,7 @@ pipeline {
|
||||
// If this is a public release tag it in the LS Github
|
||||
stage('Github-Tag-Push-Release') {
|
||||
when {
|
||||
branch "develop"
|
||||
branch "main"
|
||||
expression {
|
||||
env.LS_RELEASE != env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
|
||||
}
|
||||
@ -1014,21 +1019,21 @@ pipeline {
|
||||
else
|
||||
AUTO_RELEASE_NOTES=$(curl -fsL -H "Authorization: token ${GITHUB_TOKEN}" -H "Accept: application/vnd.github+json" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/releases/generate-notes \
|
||||
-d '{"tag_name":"'${META_TAG}'",\
|
||||
"target_commitish": "develop"}' \
|
||||
"target_commitish": "main"}' \
|
||||
| jq -r '.body' | sed 's|## What.s Changed||')
|
||||
fi
|
||||
echo "Pushing New tag for current commit ${META_TAG}"
|
||||
curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/git/tags \
|
||||
-d '{"tag":"'${META_TAG}'",\
|
||||
"object": "'${COMMIT_SHA}'",\
|
||||
"message": "Tagging Release '${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}' to develop",\
|
||||
"message": "Tagging Release '${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}' to main",\
|
||||
"type": "commit",\
|
||||
"tagger": {"name": "LinuxServer-CI","email": "ci@linuxserver.io","date": "'${GITHUB_DATE}'"}}'
|
||||
echo "Pushing New release for Tag"
|
||||
echo "Data change at JSON endpoint ${JSON_URL}" > releasebody.json
|
||||
curl -H "Authorization: token ${GITHUB_TOKEN}" -s https://api.github.com/repos/${EXT_USER}/${EXT_REPO}/releases/latest | jq -r '. |.body' > releasebody.json
|
||||
jq -n \
|
||||
--arg tag_name "$META_TAG" \
|
||||
--arg target_commitish "develop" \
|
||||
--arg target_commitish "main" \
|
||||
--arg ci_url "${CI_URL:-N/A}" \
|
||||
--arg ls_notes "$AUTO_RELEASE_NOTES" \
|
||||
--arg remote_notes "$(cat releasebody.json)" \
|
||||
@ -1038,7 +1043,7 @@ pipeline {
|
||||
"name": $tag_name,
|
||||
"body": ("**CI Report:**\\n\\n" + $ci_url + "\\n\\n**LinuxServer Changes:**\\n\\n" + $ls_notes + "\\n\\n**Remote Changes:**\\n\\n" + $remote_notes),
|
||||
"draft": false,
|
||||
"prerelease": true }' > releasebody.json.done
|
||||
"prerelease": false }' > releasebody.json.done
|
||||
curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/releases -d @releasebody.json.done
|
||||
'''
|
||||
}
|
||||
@ -1046,14 +1051,14 @@ pipeline {
|
||||
// Add protection to the release branch
|
||||
stage('Github-Release-Branch-Protection') {
|
||||
when {
|
||||
branch "develop"
|
||||
branch "main"
|
||||
environment name: 'CHANGE_ID', value: ''
|
||||
environment name: 'EXIT_STATUS', value: ''
|
||||
}
|
||||
steps {
|
||||
echo "Setting up protection for release branch develop"
|
||||
echo "Setting up protection for release branch main"
|
||||
sh '''#! /bin/bash
|
||||
curl -H "Authorization: token ${GITHUB_TOKEN}" -X PUT https://api.github.com/repos/${LS_USER}/${LS_REPO}/branches/develop/protection \
|
||||
curl -H "Authorization: token ${GITHUB_TOKEN}" -X PUT https://api.github.com/repos/${LS_USER}/${LS_REPO}/branches/main/protection \
|
||||
-d $(jq -c . << EOF
|
||||
{
|
||||
"required_status_checks": null,
|
||||
|
||||
39
README.md
39
README.md
@ -1,5 +1,5 @@
|
||||
<!-- DO NOT EDIT THIS FILE MANUALLY -->
|
||||
<!-- Please read https://github.com/linuxserver/docker-mastodon/blob/develop/.github/CONTRIBUTING.md -->
|
||||
<!-- Please read https://github.com/linuxserver/docker-mastodon/blob/main/.github/CONTRIBUTING.md -->
|
||||
[](https://linuxserver.io)
|
||||
|
||||
[](https://blog.linuxserver.io "all the things you can do with our containers including How-To guides, opinions and much more!")
|
||||
@ -34,7 +34,7 @@ Find us at:
|
||||
[](https://quay.io/repository/linuxserver.io/mastodon)
|
||||
[](https://hub.docker.com/r/linuxserver/mastodon)
|
||||
[](https://hub.docker.com/r/linuxserver/mastodon)
|
||||
[](https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-mastodon/job/develop/)
|
||||
[](https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-mastodon/job/main/)
|
||||
|
||||
[Mastodon](https://github.com/mastodon/mastodon/) is a free, open-source social network server based on ActivityPub where users can follow friends and discover new ones..
|
||||
|
||||
@ -44,7 +44,7 @@ Find us at:
|
||||
|
||||
We utilise the docker manifest for multi-platform awareness. More information is available from docker [here](https://distribution.github.io/distribution/spec/manifest-v2-2/#manifest-list) and our announcement [here](https://blog.linuxserver.io/2019/02/21/the-lsio-pipeline-project/).
|
||||
|
||||
Simply pulling `lscr.io/linuxserver/mastodon:develop` should retrieve the correct image for your arch, but you can also pull specific arch images via tags.
|
||||
Simply pulling `lscr.io/linuxserver/mastodon:latest` should retrieve the correct image for your arch, but you can also pull specific arch images via tags.
|
||||
|
||||
The architectures supported by this image are:
|
||||
|
||||
@ -67,11 +67,11 @@ This image provides various versions that are available via tags. Please read th
|
||||
|
||||
We provide aliases for the common commands that execute in the correct context so that environment variables from secrets are available to them:
|
||||
|
||||
* To generate keys for `SECRET_KEY_BASE` & `OTP_SECRET` run `docker run --rm -it --entrypoint /bin/bash lscr.io/linuxserver/mastodon:develop generate-secret` once for each.
|
||||
* To generate keys for `SECRET_KEY_BASE` & `OTP_SECRET` run `docker run --rm -it --entrypoint /bin/bash lscr.io/linuxserver/mastodon:latest generate-secret` once for each.
|
||||
|
||||
* To generate keys for `VAPID_PRIVATE_KEY` & `VAPID_PUBLIC_KEY` run `docker run --rm -it --entrypoint /bin/bash lscr.io/linuxserver/mastodon:develop generate-vapid`
|
||||
* To generate keys for `VAPID_PRIVATE_KEY` & `VAPID_PUBLIC_KEY` run `docker run --rm -it --entrypoint /bin/bash lscr.io/linuxserver/mastodon:latest generate-vapid`
|
||||
|
||||
* To generate keys for `ACTIVE_RECORD_ENCRYPTION_DETERMINISTIC_KEY`, `ACTIVE_RECORD_ENCRYPTION_KEY_DERIVATION_SALT`, & `ACTIVE_RECORD_ENCRYPTION_PRIMARY_KEY` run `docker run --rm -it --entrypoint /bin/bash lscr.io/linuxserver/mastodon:develop generate-active-record`
|
||||
* To generate keys for `ACTIVE_RECORD_ENCRYPTION_DETERMINISTIC_KEY`, `ACTIVE_RECORD_ENCRYPTION_KEY_DERIVATION_SALT`, & `ACTIVE_RECORD_ENCRYPTION_PRIMARY_KEY` run `docker run --rm -it --entrypoint /bin/bash lscr.io/linuxserver/mastodon:latest generate-active-record`
|
||||
|
||||
Both of the secret generation aliases above can be run without any other setup having been carried out.
|
||||
|
||||
@ -114,7 +114,7 @@ To help you get started creating a container from this image you can either use
|
||||
---
|
||||
services:
|
||||
mastodon:
|
||||
image: lscr.io/linuxserver/mastodon:develop
|
||||
image: lscr.io/linuxserver/mastodon:latest
|
||||
container_name: mastodon
|
||||
environment:
|
||||
- PUID=1000
|
||||
@ -218,7 +218,7 @@ docker run -d \
|
||||
-p 9394:9394 `#optional` \
|
||||
-v /path/to/mastodon/config:/config \
|
||||
--restart unless-stopped \
|
||||
lscr.io/linuxserver/mastodon:develop
|
||||
lscr.io/linuxserver/mastodon:latest
|
||||
```
|
||||
|
||||
## Parameters
|
||||
@ -246,9 +246,9 @@ Containers are configured using parameters passed at runtime (such as those abov
|
||||
| `-e ACTIVE_RECORD_ENCRYPTION_DETERMINISTIC_KEY=` | Deterministic key for [Active Record Encryption](https://github.com/mastodon/mastodon/pull/29831/files). |
|
||||
| `-e ACTIVE_RECORD_ENCRYPTION_KEY_DERIVATION_SALT=` | Derivation salt for [Active Record Encryption](https://github.com/mastodon/mastodon/pull/29831/files). |
|
||||
| `-e SECRET_KEY_BASE=` | Browser session secret. Changing it will break all active browser sessions. |
|
||||
| `-e OTP_SECRET=` | MFA secret. Changing it will break two-factor authentication. |
|
||||
| `-e VAPID_PRIVATE_KEY=` | Push notification private key. Changing it will break push notifications. |
|
||||
| `-e VAPID_PUBLIC_KEY=` | Push notification public key. Changing it will break push notifications. |
|
||||
| `-e OTP_SECRET=` | MFA secret. Changing it after initial setup will break two-factor authentication. |
|
||||
| `-e VAPID_PRIVATE_KEY=` | Push notification private key. Changing it after initial setup will break push notifications. |
|
||||
| `-e VAPID_PUBLIC_KEY=` | Push notification public key. Changing it after initial setup will break push notifications. |
|
||||
| `-e SMTP_SERVER=mail.example.com` | SMTP server for email notifications |
|
||||
| `-e SMTP_PORT=25` | SMTP server port |
|
||||
| `-e SMTP_LOGIN=` | SMTP username |
|
||||
@ -337,7 +337,7 @@ We publish various [Docker Mods](https://github.com/linuxserver/docker-mods) to
|
||||
* Image version number:
|
||||
|
||||
```bash
|
||||
docker inspect -f '{{ index .Config.Labels "build_version" }}' lscr.io/linuxserver/mastodon:develop
|
||||
docker inspect -f '{{ index .Config.Labels "build_version" }}' lscr.io/linuxserver/mastodon:latest
|
||||
```
|
||||
|
||||
## Updating Info
|
||||
@ -385,7 +385,7 @@ Below are the instructions for updating containers:
|
||||
* Update the image:
|
||||
|
||||
```bash
|
||||
docker pull lscr.io/linuxserver/mastodon:develop
|
||||
docker pull lscr.io/linuxserver/mastodon:latest
|
||||
```
|
||||
|
||||
* Stop the running container:
|
||||
@ -422,7 +422,7 @@ cd docker-mastodon
|
||||
docker build \
|
||||
--no-cache \
|
||||
--pull \
|
||||
-t lscr.io/linuxserver/mastodon:develop .
|
||||
-t lscr.io/linuxserver/mastodon:latest .
|
||||
```
|
||||
|
||||
The ARM variants can be built on x86_64 hardware and vice versa using `lscr.io/linuxserver/qemu-static`
|
||||
@ -437,11 +437,12 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64
|
||||
|
||||
* **21.10.25:** - Add prometheus exporter support.
|
||||
* **20.10.25:** - Add vips-heif.
|
||||
* **06.06.25:** - Rebase to Alpine 3.22, replace deprecated imagemagick with vips.
|
||||
* **26.08.24:** - Rebase to Alpine 3.20, enable [Active Record Encryption](https://github.com/mastodon/mastodon/pull/29831/files). Existing users should update their nginx confs to avoid http2 deprecation warnings.
|
||||
* **08.08.23:** - Rebase to Alpine 3.18, migrate to s6v3
|
||||
* **08.07.25:** - Rebase to Alpine 3.22.
|
||||
* **06.06.25:** - Rebase to Alpine 3.21, replace deprecated imagemagick with vips.
|
||||
* **08.10.24:** - Rebase to Alpine 3.20, enable [Active Record Encryption](https://github.com/mastodon/mastodon/pull/29831/files). Existing users should update their nginx confs to avoid http2 deprecation warnings.
|
||||
* **21.09.23:** - Rebase to Alpine 3.18, migrate to s6v3.
|
||||
* **25.05.23:** - Adjust apk flags.
|
||||
* **09.02.23:** - Add Glitch branch.
|
||||
* **26.01.23:** - Add aliases for key generation & tootctl to better support secrets.
|
||||
* **09.01.23:** - Updated nginx conf to fix bring inline with Mastodon configuration (fixes Elk integration).
|
||||
* **19.12.22:** - Support separate sidekiq queue instances.
|
||||
* **08.11.22:** - Add develop branch.
|
||||
* **05.11.22:** - Initial Release.
|
||||
|
||||
@ -2,14 +2,12 @@
|
||||
|
||||
# jenkins variables
|
||||
project_name: docker-mastodon
|
||||
external_type: custom_json
|
||||
release_type: prerelease
|
||||
release_tag: develop
|
||||
ls_branch: develop
|
||||
external_type: github_stable
|
||||
release_type: stable
|
||||
release_tag: latest
|
||||
ls_branch: main
|
||||
image_builder: default
|
||||
repo_vars:
|
||||
- JSON_URL='https://api.github.com/repos/mastodon/mastodon/releases'
|
||||
- JSON_PATH='first(.[] | select(.prerelease==true)) | .tag_name'
|
||||
- EXT_GIT_BRANCH = 'main'
|
||||
- EXT_USER = 'mastodon'
|
||||
- EXT_REPO = 'mastodon'
|
||||
|
||||
@ -55,7 +55,7 @@ anstyle-query 1.0.2 rust-c
|
||||
anyhow 1.0.79 rust-crate
|
||||
anyhow 1.0.98 rust-crate
|
||||
aom-libs 3.12.1-r0 apk
|
||||
apache2-utils 2.4.65-r0 apk
|
||||
apache2-utils 2.4.66-r0 apk
|
||||
apk-tools 2.14.9-r3 apk
|
||||
apr 1.7.5-r0 apk
|
||||
apr-util 1.6.3-r1 apk
|
||||
@ -104,7 +104,7 @@ busybox 1.37.0-r20 apk
|
||||
busybox-binsh 1.37.0-r20 apk
|
||||
bytemuck 1.14.0 rust-crate
|
||||
bytes 3.1.2 npm
|
||||
c-ares 1.34.5-r0 apk
|
||||
c-ares 1.34.6-r0 apk
|
||||
ca-certificates 20250911-r0 apk
|
||||
ca-certificates-bundle 20250911-r0 apk
|
||||
cacache 19.0.1 npm
|
||||
@ -135,7 +135,7 @@ color-convert 2.0.1 npm
|
||||
color-name 1.1.4 npm
|
||||
color_diff 0.1 gem
|
||||
colorchoice 1.0.0 rust-crate
|
||||
composer 2.9.2 binary
|
||||
composer 2.9.3 binary
|
||||
concurrent-ruby 1.3.5 gem
|
||||
concurrent_ruby UNKNOWN java-archive
|
||||
connection_pool 2.5.4 gem
|
||||
@ -275,7 +275,7 @@ giflib 5.2.2-r1 apk
|
||||
git 2.49.1-r0 apk
|
||||
git-init-template 2.49.1-r0 apk
|
||||
glib 2.84.4-r0 apk
|
||||
glob 10.4.5 npm
|
||||
glob 10.5.0 npm
|
||||
globalid 1.3.0 gem
|
||||
glslang-libs 1.4.309.0-r0 apk
|
||||
gmp 6.3.0-r3 apk
|
||||
@ -414,7 +414,7 @@ librist 0.2.10-r1 apk
|
||||
librsvg 2.60.0-r0 apk
|
||||
libsharpyuv 1.5.0-r0 apk
|
||||
libsndfile 1.2.2-r2 apk
|
||||
libsodium 1.0.20-r0 apk
|
||||
libsodium 1.0.20-r1 apk
|
||||
libspng 0.7.4-r1 apk
|
||||
libsrt 1.5.3-r1 apk
|
||||
libssh 0.11.2-r0 apk
|
||||
@ -612,21 +612,21 @@ pg-protocol 1.10.3 npm
|
||||
pg-types 2.2.0 npm
|
||||
pghero 3.7.0 gem
|
||||
pgpass 1.0.5 npm
|
||||
php84 8.4.14-r0 apk
|
||||
php84-common 8.4.14-r0 apk
|
||||
php84-ctype 8.4.14-r0 apk
|
||||
php84-curl 8.4.14-r0 apk
|
||||
php84-fileinfo 8.4.14-r0 apk
|
||||
php84-fpm 8.4.14-r0 apk
|
||||
php84-iconv 8.4.14-r0 apk
|
||||
php84-mbstring 8.4.14-r0 apk
|
||||
php84-openssl 8.4.14-r0 apk
|
||||
php84-phar 8.4.14-r0 apk
|
||||
php84-session 8.4.14-r0 apk
|
||||
php84-simplexml 8.4.14-r0 apk
|
||||
php84-xml 8.4.14-r0 apk
|
||||
php84-xmlwriter 8.4.14-r0 apk
|
||||
php84-zip 8.4.14-r0 apk
|
||||
php84 8.4.16-r0 apk
|
||||
php84-common 8.4.16-r0 apk
|
||||
php84-ctype 8.4.16-r0 apk
|
||||
php84-curl 8.4.16-r0 apk
|
||||
php84-fileinfo 8.4.16-r0 apk
|
||||
php84-fpm 8.4.16-r0 apk
|
||||
php84-iconv 8.4.16-r0 apk
|
||||
php84-mbstring 8.4.16-r0 apk
|
||||
php84-openssl 8.4.16-r0 apk
|
||||
php84-phar 8.4.16-r0 apk
|
||||
php84-session 8.4.16-r0 apk
|
||||
php84-simplexml 8.4.16-r0 apk
|
||||
php84-xml 8.4.16-r0 apk
|
||||
php84-xmlwriter 8.4.16-r0 apk
|
||||
php84-zip 8.4.16-r0 apk
|
||||
picomatch 4.0.3 npm
|
||||
pino 9.14.0 npm
|
||||
pino-abstract-transport 2.0.0 npm
|
||||
@ -839,7 +839,7 @@ tty-reader 0.9.0 gem
|
||||
tty-screen 0.8.2 gem
|
||||
twitter-text 3.1.0 gem
|
||||
type-is 1.6.18 npm
|
||||
tzdata 2025b-r0 apk
|
||||
tzdata 2025c-r0 apk
|
||||
tzinfo 2.0.6 gem
|
||||
tzinfo-data 1.2025.2 gem
|
||||
un 0.3.0 gem
|
||||
|
||||
@ -7,6 +7,7 @@ project_logo: "https://raw.githubusercontent.com/linuxserver/docker-templates/ma
|
||||
project_blurb: |
|
||||
[{{ project_name|capitalize }}]({{ project_url }}) is a free, open-source social network server based on ActivityPub where users can follow friends and discover new ones..
|
||||
project_lsio_github_repo_url: "https://github.com/linuxserver/docker-{{ project_name }}"
|
||||
project_categories: "Social"
|
||||
# supported architectures
|
||||
available_architectures:
|
||||
- {arch: "{{ arch_x86_64 }}", tag: "amd64-latest"}
|
||||
@ -35,9 +36,9 @@ param_env_vars:
|
||||
- {env_var: "ACTIVE_RECORD_ENCRYPTION_DETERMINISTIC_KEY", env_value: "", desc: "Deterministic key for [Active Record Encryption](https://github.com/mastodon/mastodon/pull/29831/files)."}
|
||||
- {env_var: "ACTIVE_RECORD_ENCRYPTION_KEY_DERIVATION_SALT", env_value: "", desc: "Derivation salt for [Active Record Encryption](https://github.com/mastodon/mastodon/pull/29831/files)."}
|
||||
- {env_var: "SECRET_KEY_BASE", env_value: "", desc: "Browser session secret. Changing it will break all active browser sessions."}
|
||||
- {env_var: "OTP_SECRET", env_value: "", desc: "MFA secret. Changing it will break two-factor authentication."}
|
||||
- {env_var: "VAPID_PRIVATE_KEY", env_value: "", desc: "Push notification private key. Changing it will break push notifications."}
|
||||
- {env_var: "VAPID_PUBLIC_KEY", env_value: "", desc: "Push notification public key. Changing it will break push notifications."}
|
||||
- {env_var: "OTP_SECRET", env_value: "", desc: "MFA secret. Changing it after initial setup will break two-factor authentication."}
|
||||
- {env_var: "VAPID_PRIVATE_KEY", env_value: "", desc: "Push notification private key. Changing it after initial setup will break push notifications."}
|
||||
- {env_var: "VAPID_PUBLIC_KEY", env_value: "", desc: "Push notification public key. Changing it after initial setup will break push notifications."}
|
||||
- {env_var: "SMTP_SERVER", env_value: "mail.example.com", desc: "SMTP server for email notifications"}
|
||||
- {env_var: "SMTP_PORT", env_value: "25", desc: "SMTP server port"}
|
||||
- {env_var: "SMTP_LOGIN", env_value: "", desc: "SMTP username"}
|
||||
@ -77,11 +78,11 @@ app_setup_block_enabled: true
|
||||
app_setup_block: |
|
||||
We provide aliases for the common commands that execute in the correct context so that environment variables from secrets are available to them:
|
||||
|
||||
* To generate keys for `SECRET_KEY_BASE` & `OTP_SECRET` run `docker run --rm -it --entrypoint /bin/bash lscr.io/linuxserver/mastodon:develop generate-secret` once for each.
|
||||
* To generate keys for `SECRET_KEY_BASE` & `OTP_SECRET` run `docker run --rm -it --entrypoint /bin/bash lscr.io/linuxserver/mastodon:latest generate-secret` once for each.
|
||||
|
||||
* To generate keys for `VAPID_PRIVATE_KEY` & `VAPID_PUBLIC_KEY` run `docker run --rm -it --entrypoint /bin/bash lscr.io/linuxserver/mastodon:develop generate-vapid`
|
||||
* To generate keys for `VAPID_PRIVATE_KEY` & `VAPID_PUBLIC_KEY` run `docker run --rm -it --entrypoint /bin/bash lscr.io/linuxserver/mastodon:latest generate-vapid`
|
||||
|
||||
* To generate keys for `ACTIVE_RECORD_ENCRYPTION_DETERMINISTIC_KEY`, `ACTIVE_RECORD_ENCRYPTION_KEY_DERIVATION_SALT`, & `ACTIVE_RECORD_ENCRYPTION_PRIMARY_KEY` run `docker run --rm -it --entrypoint /bin/bash lscr.io/linuxserver/mastodon:develop generate-active-record`
|
||||
* To generate keys for `ACTIVE_RECORD_ENCRYPTION_DETERMINISTIC_KEY`, `ACTIVE_RECORD_ENCRYPTION_KEY_DERIVATION_SALT`, & `ACTIVE_RECORD_ENCRYPTION_PRIMARY_KEY` run `docker run --rm -it --entrypoint /bin/bash lscr.io/linuxserver/mastodon:latest generate-active-record`
|
||||
|
||||
Both of the secret generation aliases above can be run without any other setup having been carried out.
|
||||
|
||||
@ -112,7 +113,7 @@ app_setup_block: |
|
||||
This image automatically redirects to https with a self-signed certificate. If you are using a reverse proxy which validates certificates, you need to [disable this check for the container](https://docs.linuxserver.io/faq#strict-proxy).
|
||||
# init diagram
|
||||
init_diagram: |
|
||||
"mastodon:develop": {
|
||||
"mastodon:latest": {
|
||||
docker-mods
|
||||
base {
|
||||
fix-attr +\nlegacy cont-init
|
||||
@ -169,16 +170,17 @@ init_diagram: |
|
||||
Base Images: {
|
||||
"baseimage-alpine-nginx:3.22" <- "baseimage-alpine:3.22"
|
||||
}
|
||||
"mastodon:develop" <- Base Images
|
||||
"mastodon:latest" <- Base Images
|
||||
# changelog
|
||||
changelogs:
|
||||
- {date: "21.10.25:", desc: "Add prometheus exporter support."}
|
||||
- {date: "20.10.25:", desc: "Add vips-heif."}
|
||||
- {date: "06.06.25:", desc: "Rebase to Alpine 3.22, replace deprecated imagemagick with vips."}
|
||||
- {date: "26.08.24:", desc: "Rebase to Alpine 3.20, enable [Active Record Encryption](https://github.com/mastodon/mastodon/pull/29831/files). Existing users should update their nginx confs to avoid http2 deprecation warnings."}
|
||||
- {date: "08.08.23:", desc: "Rebase to Alpine 3.18, migrate to s6v3"}
|
||||
- {date: "08.07.25:", desc: "Rebase to Alpine 3.22."}
|
||||
- {date: "06.06.25:", desc: "Rebase to Alpine 3.21, replace deprecated imagemagick with vips."}
|
||||
- {date: "08.10.24:", desc: "Rebase to Alpine 3.20, enable [Active Record Encryption](https://github.com/mastodon/mastodon/pull/29831/files). Existing users should update their nginx confs to avoid http2 deprecation warnings."}
|
||||
- {date: "21.09.23:", desc: "Rebase to Alpine 3.18, migrate to s6v3."}
|
||||
- {date: "25.05.23:", desc: "Adjust apk flags."}
|
||||
- {date: "09.02.23:", desc: "Add Glitch branch."}
|
||||
- {date: "26.01.23:", desc: "Add aliases for key generation & tootctl to better support secrets."}
|
||||
- {date: "09.01.23:", desc: "Updated nginx conf to fix bring inline with Mastodon configuration (fixes Elk integration)."}
|
||||
- {date: "19.12.22:", desc: "Support separate sidekiq queue instances."}
|
||||
- {date: "08.11.22:", desc: "Add develop branch."}
|
||||
- {date: "05.11.22:", desc: "Initial Release."}
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
## Version 2024/08/26 - Changelog: https://github.com/linuxserver/docker-mastodon/commits/develop/root/defaults/nginx/site-confs/default.conf.sample
|
||||
## Version 2024/08/26 - Changelog: https://github.com/linuxserver/docker-mastodon/commits/main/root/defaults/nginx/site-confs/default.conf.sample
|
||||
|
||||
map $http_upgrade $connection_upgrade {
|
||||
default upgrade;
|
||||
|
||||
@ -1 +1 @@
|
||||
3
|
||||
3
|
||||
|
||||
@ -1 +1 @@
|
||||
4
|
||||
4
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user