Skip to content

Commit

Permalink
feat: First version (#6)
Browse files Browse the repository at this point in the history
  • Loading branch information
lholota committed Aug 14, 2023
1 parent 37425e2 commit f86fdae
Show file tree
Hide file tree
Showing 40 changed files with 3,220 additions and 512 deletions.
9 changes: 9 additions & 0 deletions .babelrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"env": {
"test": {
"plugins": [
"@babel/plugin-transform-modules-commonjs"
]
}
}
}
9 changes: 6 additions & 3 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ on:
pull_request:

env:
IMAGE_NAME: "homecentr/$$IMAGE_NAME$$"
IMAGE_NAME: "homecentr/haraka-relay"

jobs:
build:
Expand All @@ -24,11 +24,14 @@ jobs:
- name: Verify Dockerfile with Hadolint
uses: brpaz/hadolint-action@master

- name: Install dependencies
run: yarn

- name: Build Docker image
run: docker build . -t ${{ env.IMAGE_NAME }}:${{ steps.vars.outputs.docker_tag }}
run: yarn build

- name: Test Docker image
run: cd tests && sudo --preserve-env gradle test --info -Ddocker_image_tag=${{ env.IMAGE_NAME }}:${{ steps.vars.outputs.docker_tag }}
run: yarn test
env: # To allow downloading packages
GITHUB_USERNAME: ${{ github.actor }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
4 changes: 2 additions & 2 deletions .github/workflows/ci_cd.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ on:
- master

env:
IMAGE_NAME: "homecentr/$$IMAGE_NAME$$"
IMAGE_NAME: "homecentr/haraka-relay"

jobs:
build:
Expand Down Expand Up @@ -42,7 +42,7 @@ jobs:
- name: Test Docker image
if: env.RELEASE_VERSION != ''
run: cd tests && sudo --preserve-env gradle test -Ddocker_image_tag=${{ env.IMAGE_NAME }}:${{ env.RELEASE_VERSION }}
run: yarn && yarn test
env: # To allow downloading packages
GITHUB_USERNAME: ${{ github.actor }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Expand Down
20 changes: 1 addition & 19 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,19 +1 @@
*.class
*.jar
*.war
*.ear
.gradle
build
.gradletasknamecache

**/.idea/workspace.xml
**/.idea/tasks.xml

# Ignore Gradle GUI config
gradle-app.setting

# Avoid ignoring Gradle wrapper jar file (.jar files are usually ignored)
!gradle-wrapper.jar

# Cache of project
.gradletasknamecache
node_modules
30 changes: 29 additions & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
@@ -1 +1,29 @@
FROM homecentr/base:3.1.1-alpine
FROM node:lts-bookworm

# Install Haraka and dependencies
RUN npm install -g Haraka@3.0.2 && \
npm install -g express@4.18.2 && \
# Initialize a configuration directory
haraka -i /haraka

WORKDIR /haraka

# Install external plugins
RUN npm install @mailprotector/haraka-plugin-prometheus@1.0.6 --save

COPY ./fs/ /

# Prepare for non-root execution
RUN chgrp -R node /haraka && \
chown -R node /haraka

EXPOSE 2525
EXPOSE 9904

VOLUME [ "/haraka" ]

WORKDIR /
USER node

ENTRYPOINT [ "haraka" ]
CMD [ "-c", "/haraka" ]
37 changes: 17 additions & 20 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,45 +1,42 @@
[![Project status](https://badgen.net/badge/project%20status/stable%20%26%20actively%20maintaned?color=green)](https://github.com/homecentr/docker-$$IMAGE_NAME$$/graphs/commit-activity) [![](https://badgen.net/github/label-issues/homecentr/docker-$$IMAGE_NAME$$/bug?label=open%20bugs&color=green)](https://github.com/homecentr/docker-$$IMAGE_NAME$$/labels/bug) [![](https://badgen.net/github/release/homecentr/docker-$$IMAGE_NAME$$)](https://hub.docker.com/repository/docker/homecentr/$$IMAGE_NAME$$)
[![](https://badgen.net/docker/pulls/homecentr/$$IMAGE_NAME$$)](https://hub.docker.com/repository/docker/homecentr/$$IMAGE_NAME$$)
[![](https://badgen.net/docker/size/homecentr/$$IMAGE_NAME$$)](https://hub.docker.com/repository/docker/homecentr/$$IMAGE_NAME$$)
[![Project status](https://badgen.net/badge/project%20status/stable%20%26%20actively%20maintaned?color=green)](https://github.com/homecentr/docker-haraka-relay/graphs/commit-activity) [![](https://badgen.net/github/label-issues/homecentr/docker-haraka-relay/bug?label=open%20bugs&color=green)](https://github.com/homecentr/docker-haraka-relay/labels/bug) [![](https://badgen.net/github/release/homecentr/docker-haraka-relay)](https://hub.docker.com/repository/docker/homecentr/haraka-relay)
[![](https://badgen.net/docker/pulls/homecentr/haraka-relay)](https://hub.docker.com/repository/docker/homecentr/haraka-relay)
[![](https://badgen.net/docker/size/homecentr/haraka-relay)](https://hub.docker.com/repository/docker/homecentr/haraka-relay)

![CI/CD on master](https://github.com/homecentr/docker-$$IMAGE_NAME$$/workflows/CI/CD%20on%20master/badge.svg)
![CI/CD on master](https://github.com/homecentr/docker-haraka-relay/workflows/CI/CD%20on%20master/badge.svg)


# Homecentr - $$IMAGE_NAME$$
# Homecentr - haraka-relay

## Usage

```yml
version: "3.7"
services:
$$IMAGE_NAME$$:
haraka-relay:
build: .
image: homecentr/$$IMAGE_NAME$$
image: homecentr/haraka-relay
volumes:
- .../auth_flat_file.ini:/haraka/config/auth_flat_file.ini
- .../relay_via_external.ini:/haraka/config/relay_via_external.ini
- .../tls_cert.pem:/haraka/config/tls_cert.pem
- .../tls_key.pem:/haraka/config/tls_key.pem
```

## Environment variables

| Name | Default value | Description |
|------|---------------|-------------|
| PUID | 7077 | UID of the user $$IMAGE_NAME$$ should be running as. |
| PGID | 7077 | GID of the user $$IMAGE_NAME$$ should be running as. |

## Exposed ports

| Port | Protocol | Description |
|------|------|-------------|
| 80 | TCP | Some useful details |
| 2525 | TCP | SMTP |
| 9904 | TCP | HTTP server with Prometheus metrics |

## Volumes

| Container path | Description |
|------------|---------------|
| /config | Some useful details |
| /haraka | Haraka root directory |

## Security
The container is regularly scanned for vulnerabilities and updated. Further info can be found in the [Security tab](https://github.com/homecentr/docker-$$IMAGE_NAME$$/security).
The container is regularly scanned for vulnerabilities and updated. Further info can be found in the [Security tab](https://github.com/homecentr/docker-haraka-relay/security).

### Container user
The container supports privilege drop. Even though the container starts as root, it will use the permissions only to perform the initial set up. The $$IMAGE_NAME$$ process runs as UID/GID provided in the PUID and PGID environment variables.

:warning: Do not change the container user directly using the `user` Docker compose property or using the `--user` argument. This would break the privilege drop logic.
The container runs as a non-root user with UID/GID 1000 by default.
34 changes: 31 additions & 3 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,34 @@
version: "3.7"
services:
$$IMAGE_NAME$$:
haraka:
build: .
image: homecentr/$$IMAGE_NAME$$
restart: unless-stopped
image: homecentr/haraka-relay
restart: unless-stopped
container_name: haraka
ports:
- 2525:2525
- 9904:9904
networks:
default:
volumes:
- ./example/auth_flat_file.ini:/haraka/config/auth_flat_file.ini
- ./example/relay_via_external.ini:/haraka/config/relay_via_external.ini
- ./example/tls_cert.pem:/haraka/config/tls_cert.pem
- ./example/tls_key.pem:/haraka/config/tls_key.pem
# To trust mocks TLS certificate
- "./example/smtp-mock.crt:/etc/ssl/certs/ca-certificates.crt:ro"

smtp_mock:
image: kbedel/fake-smtp-server
command: node index.js --debug --keystore /keystore.pfx --passphrase Pass --smtpAuth some-user:some-password
container_name: smtp_mock
ports:
- "1080:1080"
networks:
default:
volumes:
- "./example/smtp-mock.pfx:/keystore.pfx"

networks:
internal:
driver: bridge
5 changes: 5 additions & 0 deletions example/auth_flat_file.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
[core]
methods=PLAIN,LOGIN,CRAM-MD5

[users]
user1=password1
4 changes: 4 additions & 0 deletions example/relay_via_external.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
auth_user=some-user
auth_pass=some-password
exchange=smtp_mock
port=1025
29 changes: 29 additions & 0 deletions example/smtp-mock.crt
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
-----BEGIN CERTIFICATE-----
MIIFCTCCAvGgAwIBAgIUT2BiO1mbquwP7tiSTo9ROa6BR0UwDQYJKoZIhvcNAQEL
BQAwFDESMBAGA1UEAwwJc210cF9tb2NrMB4XDTIyMDcyNzE1MjUxNFoXDTM4MTIz
MDE1MjUxNFowFDESMBAGA1UEAwwJc210cF9tb2NrMIICIjANBgkqhkiG9w0BAQEF
AAOCAg8AMIICCgKCAgEA4dO34rQPIbH1cfeQSuvwQytPAleFc87ThsEgTMLRY6/x
DQIWzrbLorJodmFUjc2UGFYGODbe9JvgxQwwbYfBFM8l7irp9CeEN0w11N8XFdHD
XNoiJrx0logohljSuE4/Ja8dBzDlisYBXJ3MnztzeZ8Xdue18qjGKR2U4SEdkBRv
HLoDzjcVEZ7+gtpXEbEyEcp2ekl6wHYU/Ks3UfgUEWWKTs5b72vA92Bc6ziys830
mmjO6wepDFtFNGnU66FMlHsVtM01znIOOI+QV5FAMMLaURjH4bZ1ir1ujodZlG5g
jdr/POaFcAp1ZK9yPJlwPP4yyj4PBIKmbWY8praYpzDdUGlxy/rY8OXzXxoFHP99
GWhIDALnxvOhFYiiiNl/6YoXjhM/e5JJrsya/bEGkN9S0rWZQH/J1NEf2SromenU
38bb13qJ+xXu8z6nBUF/nme7ch3hcaBkyMhd8Wv7ZFGqVWk94oPEpwFq3FKPxZL5
+jug1GGxbEDIGi+7s3ZyWlAYipqM0mqPYdYdPhmvYWg7Y6O6W+MurrPgktXQT/ko
whYiZS2C996lLhE9kzi8+wzT3HA7G5UwZSqUj3/WtgA/ZyMaBt+ihn/Hc4g7a4Zl
5ACZFU6ZWFNoJitDeKjyCnNAz8u7bBkcNrYfRFe3TFTgf5oaMHEsX/pKUEVwjGEC
AwEAAaNTMFEwHQYDVR0OBBYEFHZJNXIHVfxuhV5CTOvPg2UBAj1TMB8GA1UdIwQY
MBaAFHZJNXIHVfxuhV5CTOvPg2UBAj1TMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZI
hvcNAQELBQADggIBAFzgp7e1UbJcdV3mkMLIcx+zVl3VhM0iCdtjW6xKqmeQGw6K
cimvMaXrXYcL/f7ZfUr1nwN5SC6s7iZxyOyrcOOS6JMn2z8/U0x+/GNaFz54/9S1
0JO9opwZ4P9zkvxTNFNj3qbxAT591Xl729wEqYDGoW+vnzcFcmTROWdIHabAZ2v2
+QasZylbjcyIb6jfP2hmuWnCgxgyZQmK3LI3zJFqi0OEiwbW8Q9/pdvsfo0fXkpp
wBRLhdOGCudKIuTGJV7E+ARqYWPIOsGdO1L0KwPb31CsxC1MWOEpubEEYPfMoTt0
aNlB10Tj9sJIhVR/79CHE2z8DYOOFr1+/yUGAgQJsGcEVLsWaRTYGC9wL0g74iqD
fMRClg6UTLaf3r/0LAgYTionl3VgJedyi6kq99xzDyIH25CaeR7JIINHfS6makEA
XtwzIr0MSBdYOZMQQqpMs24vcKSHU85hGdplxmYHtiSaMJPISOrwdCkBb6h+Mmtx
jLsAUH/g6dPHieqAPIru4IdrV67c+YUaWKWuBiwuUThAgQ7HS2pYW93X5iY7Na8D
ICMYopnZ8l+77I8NptwNa7Uekni3BBtpQtXiImji/DtV/4hq1TEbmzpl7KbmsTiB
awgmX0sRyJhmey2AiFhTscaYhq7HFm5FpTWUeZSqnaXNHpKwZaEAIEUCgjpi
-----END CERTIFICATE-----
54 changes: 54 additions & 0 deletions example/smtp-mock.key
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
-----BEGIN ENCRYPTED PRIVATE KEY-----
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
9yvR7IgsTPpy7ie+mXBLX1TJTyYmvGfc
-----END ENCRYPTED PRIVATE KEY-----
Binary file added example/smtp-mock.pfx
Binary file not shown.
21 changes: 21 additions & 0 deletions example/tls_cert.pem
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
-----BEGIN CERTIFICATE-----
MIIDazCCAlOgAwIBAgIUbZrnXv6z8L8oo4sYaqrtW+PEOIswDQYJKoZIhvcNAQEL
BQAwRTELMAkGA1UEBhMCQ1oxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM
GEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0yMzA4MTExMjU1NTdaFw0yOTA4
MDkxMjU1NTdaMEUxCzAJBgNVBAYTAkNaMRMwEQYDVQQIDApTb21lLVN0YXRlMSEw
HwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwggEiMA0GCSqGSIb3DQEB
AQUAA4IBDwAwggEKAoIBAQDfmEUyRUc+YfcAocX1MUjgb/Xd0Wo9/OTRwXArANZf
+MgtAV2w26BlQuGE1V5MH4ThheKgV7NrIGnURKmEm7im94HPOLcO7LEN/bHsuHBf
uY8n+jGbTJAAo2zS3DeVxdN7QtNkHheY68yKlgjxDmgTe8HKZeMtui+W+vhhDLPi
JAQxOSncBSC/ITJXhtZoHulrbhfNbL2G5ElXGJBwO6rUSRWWCiL9Ivp1CjE0jDOz
RwsGOTRIknWvLck4WSr14seeRGTGrkedbJ+zbWrmS/5cQzvRn6wqdQo6Va6+4eGp
lGsXdsXDMJ1MSTNLhG/w78K0o4P8xAutsAkiO34nVa4hAgMBAAGjUzBRMB0GA1Ud
DgQWBBTPhLhErUUBxy986/1WrMwgG3zjKDAfBgNVHSMEGDAWgBTPhLhErUUBxy98
6/1WrMwgG3zjKDAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQAZ
Zu+esiiOLeip2H+J86WCqS3NfkVmKlHQdGsXyOi+z5/ByEy31X/Ct+fwbY0cc1XJ
mR+iLPqY9KJBko0MmFOmxCjGjZW33cOO+N1HAZlR1PmAsxkCelpoDHeh9uwWUG2/
VNEtVR4UlQH+boxR+ew1sJeZVzXHPNlLDui1Ge9Mw3rTSiXQn/nSRp76ovZWZ3zA
cQh5kw8vged9B2YNFST4uzYiq847DtrJ5Td0s9rA4NNCnnhlt5e9opw0Wp+DiBMT
IpQ+BlYUl6trYQgZwc8XlV7gOIe8XLy0C2M5JAeZSM6OQQQWLN/BC7T/4bqREk06
ckBA+gUmgV+lHp+g3jpP
-----END CERTIFICATE-----
28 changes: 28 additions & 0 deletions example/tls_key.pem
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
-----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDfmEUyRUc+YfcA
ocX1MUjgb/Xd0Wo9/OTRwXArANZf+MgtAV2w26BlQuGE1V5MH4ThheKgV7NrIGnU
RKmEm7im94HPOLcO7LEN/bHsuHBfuY8n+jGbTJAAo2zS3DeVxdN7QtNkHheY68yK
lgjxDmgTe8HKZeMtui+W+vhhDLPiJAQxOSncBSC/ITJXhtZoHulrbhfNbL2G5ElX
GJBwO6rUSRWWCiL9Ivp1CjE0jDOzRwsGOTRIknWvLck4WSr14seeRGTGrkedbJ+z
bWrmS/5cQzvRn6wqdQo6Va6+4eGplGsXdsXDMJ1MSTNLhG/w78K0o4P8xAutsAki
O34nVa4hAgMBAAECggEAW+69tLerXUjmSAo73F6ROkaObs+lwSrz4hKIzgWgHwGp
PGftX8RNpJTlKLqZ9O6YsilcTtUAXjGLkc1RbcahG3V0mAEXszk6ayg+Obhz68fd
xnAmaVYHd1u6aNBGwnv+QhXt2KJOzX9WMD0UHBjyTeB6g3908t40pv01lqGkbHvh
t/IzeEEebNUyeRFo7YP6gTVhRbV+qWHb9Eo/oCgLWUIiRWVMoRQQa2tnCW5TeQ1N
pJzJu1vlaTnjocW6RixXY8GbetV7fASTEEw9tfHkS9kKruVDwgPwNJq1KL+qsXqe
xH+hBv7kFl1jGczMoVhQ5NkO6OXQ61wgZP7m84fYCQKBgQDpWSz1N8fhSOnTeyaC
Fu4J25lQ3m0xM+cFw88MVEvFyz9fpo63IO9gvPpkRGTXK9n1hJl0HA8JwQ1ZReQ3
qQCFNfp61fQBpYrY6DL6PhxQcWxVzUUqMuR5NgsiAcSU3jY5mrV5rIBB3G3soHOp
KfQ0j/Ypx3Ku1I+PSDW+RvsUdwKBgQD1TLbgup3mO9R1R4r3spmp1bfCDxpCjdlv
OBmAXLINHW5OZ1gi5JMMDX3jRnsvY3znu9uelCrLNZiSfnsk7onGrBMfT1ME4C/q
z7gX5tYRirhIbHD6yDK80+zR+8C2rQepG1VWlxkjIAnaPMjuA0089ciBzoQFYCNF
fkrgIsrwJwKBgGReXA0Zshq/vvuc4+JetIJ+90ImefcI6Ry8rWkTNQhdtOOSg55X
Rz9n6ZeJJ4q5rOWC5HJhw0IhzHkSq+gZBEVIA3YkYvD2YHON5KdoYctkDgIV6eMN
wuI0EbPN6N1TeyVp2xb70KsDgjCej0E673RQW8R6qmRyv1EU8TDn3QVfAoGASLxz
qdWMRp3NFO2e5m3eJL8Lmw5xYfS/2bvPzAEwhrUIZVU9jDMs6zEA+CiJFHcyrWBF
8hLLUbBVynKYv03AKtoRXYJfAp4bd0wasXOwXEk+9bK6GZLNgLJykZ1N+pz6HYnO
Vzu8p26znTPS/Mib2Yyj5OHAwftM2illuGp4tJcCgYEA5gVKNiK7Ae8c3p/+M3EQ
1PZiSXVy7Jr0+HDvwXxNkd+SX5+sPfx5My2e2LWbMTG02llD3QyHGQkmP5VoqS3/
k5SuPvj34i0/W3ahj+zpVyLzqrBgvD0CXZddm+yFY8T9RTw8z8fDcn+TJnOCjkaM
cQSilNTNAILjm4XtMgImd2s=
-----END PRIVATE KEY-----
1 change: 1 addition & 0 deletions fs/haraka/config/http.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
listen=[::]:9904
6 changes: 6 additions & 0 deletions fs/haraka/config/plugins
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
tls
auth/flat_file
relay_via_external
relay
limit
@mailprotector/haraka-plugin-prometheus
2 changes: 2 additions & 0 deletions fs/haraka/config/relay.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
[relay]
acl=true
1 change: 1 addition & 0 deletions fs/haraka/config/smtp.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
listen=[::0]:2525
8 changes: 8 additions & 0 deletions fs/haraka/plugins/relay_via_external.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
const config = require('haraka-config')

const externalSmtpRelay = config.get('relay_via_external.ini')

exports.hook_get_mx = function (next, hmail, domain) {
// All relaying goes via external service
return next(OK, externalSmtpRelay.main);
}
Loading

0 comments on commit f86fdae

Please sign in to comment.