Compare commits
12 Commits
6f23ed5a8d
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
701be3e283
|
|||
|
6479f6b8af
|
|||
|
43db89f75d
|
|||
|
ce80b046fb
|
|||
| 873041c11f | |||
| 86a6ac8f44 | |||
| 228a63ff4b | |||
| 931355d7dc | |||
| 872cc263a3 | |||
| 8123cce06f | |||
| 99a561421a | |||
| 40a6a73826 |
52
.gitea/workflows/build-main.yaml
Normal file
52
.gitea/workflows/build-main.yaml
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
name: Build Main Image
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- 'master'
|
||||||
|
|
||||||
|
env:
|
||||||
|
FULL_TAG: git.mrmeeb.stream/mrmeeb/postfix:latest
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
"Build Image":
|
||||||
|
runs-on: [ubuntu-docker-latest, linux/amd64]
|
||||||
|
steps:
|
||||||
|
- name: Set up QEMU
|
||||||
|
uses: docker/setup-qemu-action@v3
|
||||||
|
- name: Set up Docker Buildx
|
||||||
|
uses: docker/setup-buildx-action@v3
|
||||||
|
- name: Login to Gitea Container Registry
|
||||||
|
uses: docker/login-action@v3
|
||||||
|
with:
|
||||||
|
registry: git.mrmeeb.stream
|
||||||
|
username: ${{ env.GITHUB_ACTOR }}
|
||||||
|
password: ${{ secrets.GTCR_TOKEN }}
|
||||||
|
- name: Build and push
|
||||||
|
uses: docker/build-push-action@v5
|
||||||
|
with:
|
||||||
|
push: true
|
||||||
|
platforms: linux/amd64,linux/arm64
|
||||||
|
tags: ${{ env.FULL_TAG }}
|
||||||
|
provenance: false
|
||||||
|
- name: Notify on failure
|
||||||
|
uses: rjstone/discord-webhook-notify@v1
|
||||||
|
if: failure()
|
||||||
|
with:
|
||||||
|
severity: error
|
||||||
|
details: Build failed!
|
||||||
|
webhookUrl: ${{ secrets.DISCORD_WEBHOOK }}
|
||||||
|
username: Gitea
|
||||||
|
avatarUrl: ${{ vars.RUNNER_ICON_URL }}
|
||||||
|
"Notify":
|
||||||
|
runs-on: [ubuntu-docker-latest, linux/amd64]
|
||||||
|
needs: ["Build Image"]
|
||||||
|
steps:
|
||||||
|
- name: Notify of success
|
||||||
|
uses: rjstone/discord-webhook-notify@v1
|
||||||
|
if: success()
|
||||||
|
with:
|
||||||
|
severity: info
|
||||||
|
details: Build succeeded!
|
||||||
|
webhookUrl: ${{ secrets.DISCORD_WEBHOOK }}
|
||||||
|
username: Gitea
|
||||||
|
avatarUrl: ${{ vars.RUNNER_ICON_URL }}
|
||||||
46
.gitea/workflows/test-pr.yaml
Normal file
46
.gitea/workflows/test-pr.yaml
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
name: Test Pull Request
|
||||||
|
on:
|
||||||
|
pull_request:
|
||||||
|
branches:
|
||||||
|
- 'master'
|
||||||
|
|
||||||
|
env:
|
||||||
|
FULL_TAG: git.mrmeeb.stream/mrmeeb/postfix:develop
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
"Build Image":
|
||||||
|
runs-on: [ubuntu-docker-latest, linux/amd64]
|
||||||
|
steps:
|
||||||
|
- name: Set up QEMU
|
||||||
|
uses: docker/setup-qemu-action@v3
|
||||||
|
- name: Set up Docker Buildx
|
||||||
|
uses: docker/setup-buildx-action@v3
|
||||||
|
- name: Build
|
||||||
|
uses: docker/build-push-action@v5
|
||||||
|
with:
|
||||||
|
push: false
|
||||||
|
platforms: linux/amd64,linux/arm64
|
||||||
|
tags: ${{ env.FULL_TAG }}
|
||||||
|
provenance: false
|
||||||
|
- name: Notify on failure
|
||||||
|
uses: rjstone/discord-webhook-notify@v1
|
||||||
|
if: failure()
|
||||||
|
with:
|
||||||
|
severity: error
|
||||||
|
details: Build failed!
|
||||||
|
webhookUrl: ${{ secrets.DISCORD_WEBHOOK }}
|
||||||
|
username: Gitea
|
||||||
|
avatarUrl: ${{ vars.RUNNER_ICON_URL }}
|
||||||
|
"Notify":
|
||||||
|
runs-on: [ubuntu-docker-latest, linux/amd64]
|
||||||
|
needs: ["Build Image"]
|
||||||
|
steps:
|
||||||
|
- name: Notify of success
|
||||||
|
uses: rjstone/discord-webhook-notify@v1
|
||||||
|
if: success()
|
||||||
|
with:
|
||||||
|
severity: info
|
||||||
|
details: Build succeeded!
|
||||||
|
webhookUrl: ${{ secrets.DISCORD_WEBHOOK }}
|
||||||
|
username: Gitea
|
||||||
|
avatarUrl: ${{ vars.RUNNER_ICON_URL }}
|
||||||
21
Dockerfile
Normal file
21
Dockerfile
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
FROM alpine:3.22
|
||||||
|
|
||||||
|
RUN apk update && \
|
||||||
|
apk add bash gawk cyrus-sasl cyrus-sasl-login cyrus-sasl-crammd5 mailx \
|
||||||
|
postfix postfix-pgsql && \
|
||||||
|
rm -rf /var/cache/apk/* && \
|
||||||
|
mkdir -p /var/log/supervisor/ /var/run/supervisor/ && \
|
||||||
|
touch /etc/postfix/pgsql-relay-domains.cf && \
|
||||||
|
touch /etc/postfix/pgsql-transport-maps.cf && \
|
||||||
|
echo 'maillog_file = /dev/stdout' >> /etc/postfix/main.cf && \
|
||||||
|
sed -i -e 's/inet_interfaces = localhost/inet_interfaces = all/g' /etc/postfix/main.cf
|
||||||
|
|
||||||
|
RUN mkdir /config
|
||||||
|
|
||||||
|
COPY run.sh /
|
||||||
|
RUN chmod +x /run.sh
|
||||||
|
RUN newaliases
|
||||||
|
|
||||||
|
EXPOSE 25
|
||||||
|
#ENTRYPOINT ["/run.sh"]
|
||||||
|
CMD ["/run.sh"]
|
||||||
8
renovate.json
Normal file
8
renovate.json
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
{
|
||||||
|
"extends": [":automergeMinor", ":automergePr", ":automergeRequireAllStatusChecks", ":dependencyDashboard", ":disableRateLimiting", ":rebaseStalePrs"],
|
||||||
|
"baseBranches": ["master"],
|
||||||
|
"major": {
|
||||||
|
"dependencyDashboardApproval": true
|
||||||
|
},
|
||||||
|
"minimumReleaseAge": "7 days"
|
||||||
|
}
|
||||||
45
run.sh
Normal file
45
run.sh
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
[ "${DEBUG}" == "yes" ] && set -x
|
||||||
|
|
||||||
|
function add_config_value() {
|
||||||
|
local key=${1}
|
||||||
|
local value=${2}
|
||||||
|
# local config_file=${3:-/etc/postfix/main.cf}
|
||||||
|
[ "${key}" == "" ] && echo "ERROR: No key set !!" && exit 1
|
||||||
|
[ "${value}" == "" ] && echo "ERROR: No value set !!" && exit 1
|
||||||
|
|
||||||
|
echo "Setting configuration option ${key} with value: ${value}"
|
||||||
|
postconf -e "${key} = ${value}"
|
||||||
|
}
|
||||||
|
|
||||||
|
#Copy files into config dir
|
||||||
|
|
||||||
|
#Move missing files from Postfix to /config
|
||||||
|
mv -n /etc/postfix/main.cf /config/main.cf
|
||||||
|
mv -n /etc/postfix/master.cf /config/master.cf
|
||||||
|
mv -n /etc/postfix/pgsql-relay-domains.cf /config/pgsql-relay-domains.cf
|
||||||
|
mv -n /etc/postfix/pgsql-transport-maps.cf /config/pgsql-transport-maps.cf
|
||||||
|
|
||||||
|
#Delete files from Postfix
|
||||||
|
rm /etc/postfix/main.cf
|
||||||
|
rm /etc/postfix/master.cf
|
||||||
|
rm /etc/postfix/pgsql-relay-domains.cf
|
||||||
|
rm /etc/postfix/pgsql-transport-maps.cf
|
||||||
|
|
||||||
|
#Link files into Postfix
|
||||||
|
ln -s /config/main.cf /etc/postfix/main.cf
|
||||||
|
ln -s /config/pgsql-relay-domains.cf /etc/postfix/pgsql-relay-domains.cf
|
||||||
|
ln -s /config/pgsql-transport-maps.cf /etc/postfix/pgsql-transport-maps.cf
|
||||||
|
ln -s /config/master.cf /etc/postfix/master.cf
|
||||||
|
|
||||||
|
#Open permissions
|
||||||
|
chmod -R 777 /config
|
||||||
|
|
||||||
|
#Start services
|
||||||
|
|
||||||
|
# If host mounting /var/spool/postfix, we need to delete old pid file before
|
||||||
|
# starting services
|
||||||
|
rm -f /var/spool/postfix/pid/master.pid
|
||||||
|
|
||||||
|
exec /usr/sbin/postfix -c /etc/postfix start-fg
|
||||||
Reference in New Issue
Block a user