diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 98f4b3209b..6005f775c2 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -209,22 +209,6 @@ jobs: - name: build docker image run: sudo docker build -f ./Dashboard/Dockerfile . - docker-build-haraka: - runs-on: ubuntu-latest - env: - CI_PIPELINE_ID: ${{github.run_number}} - steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Preinstall - run: npm run prerun - - # build images - - name: build docker image - run: sudo docker build -f ./Haraka/Dockerfile . - - docker-build-probe: runs-on: ubuntu-latest env: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 8318c19342..fccf42d8b3 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1052,67 +1052,6 @@ jobs: GIT_SHA=${{ github.sha }} APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}} - - haraka-docker-image-deploy: - needs: [generate-build-number] - runs-on: ubuntu-latest - steps: - - name: Docker Meta - id: meta - uses: docker/metadata-action@v4 - with: - images: | - oneuptime/haraka - ghcr.io/oneuptime/haraka - tags: | - type=raw,value=release,enable=true - type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}},pattern={{version}},enable=true - - - uses: actions/checkout@v4 - with: - ref: ${{ github.ref }} - - - uses: actions/setup-node@v4 - with: - node-version: latest - - - name: Set up QEMU - uses: docker/setup-qemu-action@v2 - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 - - - name: Generate Dockerfile from Dockerfile.tpl - run: npm run prerun - - # Build and deploy haraka. - - - name: Login to Docker Hub - uses: docker/login-action@v2.2.0 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_PASSWORD }} - - - name: Login to GitHub Container Registry - uses: docker/login-action@v2.2.0 - with: - registry: ghcr.io - username: ${{ github.repository_owner }} - password: ${{ secrets.GITHUB_TOKEN }} - - - name: Build and push - uses: docker/build-push-action@v4 - with: - file: ./Haraka/Dockerfile - context: . - platforms: linux/amd64,linux/arm64 - push: true - tags: ${{ steps.meta.outputs.tags }} - labels: ${{ steps.meta.outputs.labels }} - build-args: | - GIT_SHA=${{ github.sha }} - APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}} - admin-dashboard-docker-image-deploy: needs: [generate-build-number] runs-on: ubuntu-latest @@ -1838,7 +1777,7 @@ jobs: test-e2e-release-saas: runs-on: ubuntu-latest - needs: [open-telemetry-ingest-docker-image-deploy, copilot-docker-image-deploy, fluent-ingest-docker-image-deploy, docs-docker-image-deploy, api-reference-docker-image-deploy, workflow-docker-image-deploy, llm-docker-image-deploy, accounts-docker-image-deploy, admin-dashboard-docker-image-deploy, app-docker-image-deploy, dashboard-docker-image-deploy, haraka-docker-image-deploy, probe-ingest-docker-image-deploy, server-monitor-ingest-docker-image-deploy, isolated-vm-docker-image-deploy, home-docker-image-deploy, worker-docker-image-deploy, otel-collector-docker-image-deploy, probe-docker-image-deploy, status-page-docker-image-deploy, test-docker-image-deploy, test-server-docker-image-deploy, publish-npm-packages, e2e-docker-image-deploy, helm-chart-deploy, generate-build-number, nginx-docker-image-deploy, incoming-request-ingest-docker-image-deploy] + needs: [open-telemetry-ingest-docker-image-deploy, copilot-docker-image-deploy, fluent-ingest-docker-image-deploy, docs-docker-image-deploy, api-reference-docker-image-deploy, workflow-docker-image-deploy, llm-docker-image-deploy, accounts-docker-image-deploy, admin-dashboard-docker-image-deploy, app-docker-image-deploy, dashboard-docker-image-deploy, probe-ingest-docker-image-deploy, server-monitor-ingest-docker-image-deploy, isolated-vm-docker-image-deploy, home-docker-image-deploy, worker-docker-image-deploy, otel-collector-docker-image-deploy, probe-docker-image-deploy, status-page-docker-image-deploy, test-docker-image-deploy, test-server-docker-image-deploy, publish-npm-packages, e2e-docker-image-deploy, helm-chart-deploy, generate-build-number, nginx-docker-image-deploy, incoming-request-ingest-docker-image-deploy] env: CI_PIPELINE_ID: ${{github.run_number}} steps: @@ -1891,7 +1830,7 @@ jobs: test-e2e-release-self-hosted: runs-on: ubuntu-latest # After all the jobs runs - needs: [open-telemetry-ingest-docker-image-deploy, publish-mcp-server, copilot-docker-image-deploy, incoming-request-ingest-docker-image-deploy, fluent-ingest-docker-image-deploy, docs-docker-image-deploy, api-reference-docker-image-deploy, workflow-docker-image-deploy, llm-docker-image-deploy, accounts-docker-image-deploy, admin-dashboard-docker-image-deploy, app-docker-image-deploy, dashboard-docker-image-deploy, haraka-docker-image-deploy, probe-ingest-docker-image-deploy, server-monitor-ingest-docker-image-deploy, isolated-vm-docker-image-deploy, home-docker-image-deploy, worker-docker-image-deploy, otel-collector-docker-image-deploy, probe-docker-image-deploy, status-page-docker-image-deploy, test-docker-image-deploy, test-server-docker-image-deploy, publish-npm-packages, e2e-docker-image-deploy, helm-chart-deploy, generate-build-number, nginx-docker-image-deploy] + needs: [open-telemetry-ingest-docker-image-deploy, publish-mcp-server, copilot-docker-image-deploy, incoming-request-ingest-docker-image-deploy, fluent-ingest-docker-image-deploy, docs-docker-image-deploy, api-reference-docker-image-deploy, workflow-docker-image-deploy, llm-docker-image-deploy, accounts-docker-image-deploy, admin-dashboard-docker-image-deploy, app-docker-image-deploy, dashboard-docker-image-deploy, probe-ingest-docker-image-deploy, server-monitor-ingest-docker-image-deploy, isolated-vm-docker-image-deploy, home-docker-image-deploy, worker-docker-image-deploy, otel-collector-docker-image-deploy, probe-docker-image-deploy, status-page-docker-image-deploy, test-docker-image-deploy, test-server-docker-image-deploy, publish-npm-packages, e2e-docker-image-deploy, helm-chart-deploy, generate-build-number, nginx-docker-image-deploy] env: CI_PIPELINE_ID: ${{github.run_number}} steps: diff --git a/.github/workflows/test-release.yaml b/.github/workflows/test-release.yaml index 159f14549b..34eed6b495 100644 --- a/.github/workflows/test-release.yaml +++ b/.github/workflows/test-release.yaml @@ -1146,67 +1146,6 @@ jobs: GIT_SHA=${{ github.sha }} APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}} - haraka-docker-image-deploy: - needs: generate-build-number - runs-on: ubuntu-latest - steps: - - name: Docker Meta - id: meta - uses: docker/metadata-action@v4 - with: - images: | - oneuptime/haraka - ghcr.io/oneuptime/haraka - tags: | - type=raw,value=test,enable=true - type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}}-test,pattern={{version}},enable=true - - - - uses: actions/checkout@v4 - with: - ref: ${{ github.ref }} - - - uses: actions/setup-node@v4 - with: - node-version: latest - - - name: Set up QEMU - uses: docker/setup-qemu-action@v2 - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 - - - name: Generate Dockerfile from Dockerfile.tpl - run: npm run prerun - - # Build and deploy haraka. - - - name: Login to Docker Hub - uses: docker/login-action@v2.2.0 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_PASSWORD }} - - - name: Login to GitHub Container Registry - uses: docker/login-action@v2.2.0 - with: - registry: ghcr.io - username: ${{ github.repository_owner }} - password: ${{ secrets.GITHUB_TOKEN }} - - - name: Build and push - uses: docker/build-push-action@v4 - with: - file: ./Haraka/Dockerfile - context: . - platforms: linux/amd64,linux/arm64 - push: true - tags: ${{ steps.meta.outputs.tags }} - labels: ${{ steps.meta.outputs.labels }} - build-args: | - GIT_SHA=${{ github.sha }} - APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}} - dashboard-docker-image-deploy: needs: generate-build-number runs-on: ubuntu-latest @@ -1768,7 +1707,7 @@ jobs: test-helm-chart: runs-on: ubuntu-latest - needs: [infrastructure-agent-deploy, publish-mcp-server, llm-docker-image-deploy, publish-terraform-provider, open-telemetry-ingest-docker-image-deploy, copilot-docker-image-deploy, docs-docker-image-deploy, worker-docker-image-deploy, workflow-docker-image-deploy, isolated-vm-docker-image-deploy, home-docker-image-deploy, api-reference-docker-image-deploy, test-server-docker-image-deploy, test-docker-image-deploy, probe-ingest-docker-image-deploy, server-monitor-ingest-docker-image-deploy, probe-docker-image-deploy, haraka-docker-image-deploy, dashboard-docker-image-deploy, admin-dashboard-docker-image-deploy, app-docker-image-deploy, accounts-docker-image-deploy, otel-collector-docker-image-deploy, status-page-docker-image-deploy, nginx-docker-image-deploy, e2e-docker-image-deploy, fluent-ingest-docker-image-deploy, incoming-request-ingest-docker-image-deploy] + needs: [infrastructure-agent-deploy, publish-mcp-server, llm-docker-image-deploy, publish-terraform-provider, open-telemetry-ingest-docker-image-deploy, copilot-docker-image-deploy, docs-docker-image-deploy, worker-docker-image-deploy, workflow-docker-image-deploy, isolated-vm-docker-image-deploy, home-docker-image-deploy, api-reference-docker-image-deploy, test-server-docker-image-deploy, test-docker-image-deploy, probe-ingest-docker-image-deploy, server-monitor-ingest-docker-image-deploy, probe-docker-image-deploy, dashboard-docker-image-deploy, admin-dashboard-docker-image-deploy, app-docker-image-deploy, accounts-docker-image-deploy, otel-collector-docker-image-deploy, status-page-docker-image-deploy, nginx-docker-image-deploy, e2e-docker-image-deploy, fluent-ingest-docker-image-deploy, incoming-request-ingest-docker-image-deploy] env: CI_PIPELINE_ID: ${{github.run_number}} steps: diff --git a/.gitignore b/.gitignore index 565e38e2be..7237b60013 100644 --- a/.gitignore +++ b/.gitignore @@ -86,9 +86,6 @@ Backups/*.tar .env -Haraka/dkim/keys/private_base64.txt -Haraka/dkim/keys/public_base64.txt - .eslintcache HelmChart/Values/*.values.yaml diff --git a/AdminDashboard/src/Pages/Settings/Email/Index.tsx b/AdminDashboard/src/Pages/Settings/Email/Index.tsx index ebcaa8a4a8..c85695facb 100644 --- a/AdminDashboard/src/Pages/Settings/Email/Index.tsx +++ b/AdminDashboard/src/Pages/Settings/Email/Index.tsx @@ -21,7 +21,7 @@ import React, { FunctionComponent, ReactElement, useEffect } from "react"; const Settings: FunctionComponent = (): ReactElement => { const [emailServerType, setemailServerType] = React.useState( - EmailServerType.Internal, + EmailServerType.CustomSMTP, ); const [isLoading, setIsLoading] = React.useState(true); @@ -43,7 +43,7 @@ const Settings: FunctionComponent = (): ReactElement => { if (globalConfig) { setemailServerType( - globalConfig.emailServerType || EmailServerType.Internal, + globalConfig.emailServerType || EmailServerType.CustomSMTP, ); } @@ -127,7 +127,7 @@ const Settings: FunctionComponent = (): ReactElement => { /> { cardProps={{ title: "Custom Email and SMTP Settings", description: - "If you have not enabled Internal SMTP server to send emails. Please configure your SMTP server here.", + "Please configure your SMTP server here to send emails.", }} isEditable={true} editButtonText="Edit SMTP Config" diff --git a/App/FeatureSet/Notification/Config.ts b/App/FeatureSet/Notification/Config.ts index aeb0b2dd11..3330aeeff5 100644 --- a/App/FeatureSet/Notification/Config.ts +++ b/App/FeatureSet/Notification/Config.ts @@ -1,10 +1,8 @@ -import Hostname from "Common/Types/API/Hostname"; import TwilioConfig from "Common/Types/CallAndSMS/TwilioConfig"; import Email from "Common/Types/Email"; import EmailServer from "Common/Types/Email/EmailServer"; import BadDataException from "Common/Types/Exception/BadDataException"; import ObjectID from "Common/Types/ObjectID"; -import Port from "Common/Types/Port"; import { AdminDashboardClientURL } from "Common/Server/EnvironmentConfig"; import GlobalConfigService from "Common/Server/Services/GlobalConfigService"; import GlobalConfig, { @@ -12,24 +10,6 @@ import GlobalConfig, { } from "Common/Models/DatabaseModels/GlobalConfig"; import Phone from "Common/Types/Phone"; -export const InternalSmtpPassword: string = - process.env["INTERNAL_SMTP_PASSWORD"] || ""; - -export const InternalSmtpHost: Hostname = new Hostname( - process.env["INTERNAL_SMTP_HOST"] || "haraka", -); - -export const InternalSmtpPort: Port = new Port(2525); - -export const InternalSmtpSecure: boolean = false; - -export const InternalSmtpEmail: Email = new Email( - process.env["INTERNAL_SMTP_EMAIL"] || "noreply@oneuptime.com", -); - -export const InternalSmtpFromName: string = - process.env["INTERNAL_SMTP_FROM_NAME"] || "OneUptime"; - type GetGlobalSMTPConfig = () => Promise; export const getGlobalSMTPConfig: GetGlobalSMTPConfig = @@ -132,10 +112,10 @@ export const getEmailServerType: GetEmailServerTypeFunction = }); if (!globalConfig) { - return EmailServerType.Internal; + return EmailServerType.CustomSMTP; } - return globalConfig.emailServerType || EmailServerType.Internal; + return globalConfig.emailServerType || EmailServerType.CustomSMTP; }; export interface SendGridConfig { diff --git a/App/FeatureSet/Notification/Services/MailService.ts b/App/FeatureSet/Notification/Services/MailService.ts index f8c53d480c..3615b6c74f 100755 --- a/App/FeatureSet/Notification/Services/MailService.ts +++ b/App/FeatureSet/Notification/Services/MailService.ts @@ -1,10 +1,4 @@ import { - InternalSmtpEmail, - InternalSmtpFromName, - InternalSmtpHost, - InternalSmtpPassword, - InternalSmtpPort, - InternalSmtpSecure, SendGridConfig, getEmailServerType, getGlobalSMTPConfig, @@ -202,19 +196,6 @@ export default class MailService { }; } - public static getInternalEmailServer(): EmailServer { - return { - id: undefined, - username: InternalSmtpEmail.toString(), - password: InternalSmtpPassword, - host: InternalSmtpHost, - port: InternalSmtpPort, - fromEmail: InternalSmtpEmail, - fromName: InternalSmtpFromName, - secure: InternalSmtpSecure, - }; - } - public static async getGlobalFromEmail(): Promise { const emailServer: EmailServer | null = await this.getGlobalSmtpSettings(); @@ -540,17 +521,6 @@ export default class MailService { options.emailServer = globalEmailServer; } - if ( - emailServerType === EmailServerType.Internal && - (!options || !options.emailServer) - ) { - if (!options) { - options = {}; - } - - options.emailServer = this.getInternalEmailServer(); - } - if (options && options.emailServer && emailLog) { emailLog.fromEmail = options.emailServer.fromEmail; } diff --git a/Common/Models/DatabaseModels/GlobalConfig.ts b/Common/Models/DatabaseModels/GlobalConfig.ts index caae88161f..a00f3fe17e 100644 --- a/Common/Models/DatabaseModels/GlobalConfig.ts +++ b/Common/Models/DatabaseModels/GlobalConfig.ts @@ -17,7 +17,6 @@ import Port from "../../Types/Port"; import { Column, Entity } from "typeorm"; export enum EmailServerType { - Internal = "Internal", Sendgrid = "Sendgrid", CustomSMTP = "Custom SMTP", } diff --git a/Haraka/.dockerignore b/Haraka/.dockerignore deleted file mode 100644 index 47fb5601cf..0000000000 --- a/Haraka/.dockerignore +++ /dev/null @@ -1,62 +0,0 @@ -private -public - -.git - -node_modules -# See https://help.github.com/ignore-files/ for more about ignoring files. - -# dependencies -/node_modules -node_modules - -.idea -# testing -/coverage - -# production -/build - -# misc -.DS_Store - -env.js - -npm-debug.log* -yarn-debug.log* -yarn-error.log* - -yarn.lock -Untitled-1 -*.local.sh -*.local.yaml -run -stop - -nohup.out* - -encrypted-credentials.tar -encrypted-credentials/ - -_README.md - -# Important Add production values to gitignore. -values-saas-production.yaml -kubernetes/values-saas-production.yaml - -/private - -/tls_cert.pem -/tls_key.pem -/keys - -temp_readme.md - -tests/coverage - -settings.json - -GoSDK/tester/ -# tls -tls_cert.pem -tls_key.pem \ No newline at end of file diff --git a/Haraka/.gitignore b/Haraka/.gitignore deleted file mode 100644 index 47f3524881..0000000000 --- a/Haraka/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -private -public - -# tls -tls_cert.pem -tls_key.pem \ No newline at end of file diff --git a/Haraka/Dockerfile.tpl b/Haraka/Dockerfile.tpl deleted file mode 100644 index 211c7e9313..0000000000 --- a/Haraka/Dockerfile.tpl +++ /dev/null @@ -1,78 +0,0 @@ -FROM public.ecr.aws/docker/library/node:23.8-alpine3.21 - -RUN mkdir /tmp/npm && chmod 2777 /tmp/npm && chown 1000:1000 /tmp/npm && npm config set cache /tmp/npm --global - -RUN npm config set fetch-retries 5 -RUN npm config set fetch-retry-mintimeout 100000 -RUN npm config set fetch-retry-maxtimeout 600000 - -ENV HARAKA_VERSION=3.0.5 - -ARG GIT_SHA -ARG APP_VERSION - -ENV GIT_SHA=${GIT_SHA} -ENV APP_VERSION=${APP_VERSION} - - -# IF APP_VERSION is not set, set it to 1.0.0 -RUN if [ -z "$APP_VERSION" ]; then export APP_VERSION=1.0.0; fi - -RUN apk add bash - -# install dependence -RUN apk upgrade --update && \ - apk add --no-cache -t .fetch-deps \ - autoconf \ - g++ \ - bash \ - curl \ - gcc \ - make \ - python3 && \ - addgroup -g 88 -S smtp && \ - adduser -u 88 -D -S -G smtp -h /harakaapp smtp && \ - # Install haraka and toobusy package - npm install -g --unsafe-perm Haraka@$HARAKA_VERSION toobusy-js && \ - # # Cleaning up - apk del --purge -r .fetch-deps && \ - apk add --no-cache tzdata openssl execline ca-certificates && \ - rm -rf /var/cache/apk/* /tmp/* ~/.pearrc - -RUN haraka -i /harakaapp - -COPY ./Haraka/config/plugins /harakaapp/config/plugins -COPY ./Haraka/config/smtp.ini /harakaapp/config/smtp.ini -COPY ./Haraka/config/tls.ini /harakaapp/config/tls.ini -COPY ./Haraka/config/auth_flat_file.ini /harakaapp/config/auth_flat_file.ini -COPY ./Haraka/config/dkim_sign.ini /harakaapp/config/dkim_sign.ini -COPY ./Haraka/config/host_list /harakaapp/config/host_list -COPY ./Haraka/config/loglevel /harakaapp/config/loglevel - -# create plugin directory -RUN mkdir -p /harakaapp/plugins - -COPY ./Haraka/plugins/email_parser.js /harakaapp/plugins/email_parser.js - -COPY ./Haraka/init.sh /init.sh -RUN chmod 755 /init.sh - -# Copy package.json and package-lock.json -COPY ./Haraka/package.json /harakaapp/package.json -COPY ./Haraka/package-lock.json /harakaapp/package-lock.json - -# Install dependencies -RUN cd /harakaapp && npm install -# Set permission to write logs and cache in case container run as non root -RUN chown -R 1000:1000 "/tmp/npm" && chmod -R 2777 "/tmp/npm" - -EXPOSE 2525 -EXPOSE 110 -EXPOSE 25 -EXPOSE 587 -EXPOSE 465 -EXPOSE 143 -EXPOSE 993 -EXPOSE 995 - -CMD ["/init.sh"] \ No newline at end of file diff --git a/Haraka/README.md b/Haraka/README.md deleted file mode 100644 index cf7809c73c..0000000000 --- a/Haraka/README.md +++ /dev/null @@ -1,82 +0,0 @@ -# Build haraka container. - -``` -sudo docker build . -t haraka:latest -``` - - -# To update a stack - -``` -cd haraka -sudo docker stack deploy haraka -c docker-compose.yml -``` - -# To restart a service - -``` -sudo docker service update haraka_haraka --force -``` - - -# Send Test Outbound Email - -``` -swaks --to hello@nawazdhandala.com --from hello@genosyn.com --server 192.168.1.100 --port 2525 --auth-user homelab --auth-password password -``` - -# Set a domain to send email - - -Generate a DKIM key: - -``` -cd dkim - -bash generate.sh - -cd .. -``` - -`public` and `private` files should have been generated inside of `dkim` folder. Please also add DNS and env vars to docker compose files. Values of that should be shown on the console. - - - -Add an A record: - -``` -mailer.company.com -``` - -Set SPF record: - -``` -# Any MX or A servers can send emails. -v=spf1 mx a -all -``` - -Example: - -``` -v=spf1 mx a ip4:37.26.74.9 include:_spf.google.com include:mail.genosyn.com ~all -``` - -Set DMARC record: - -``` -Type: TXT -Key: _dmarc -Value: "v=DMARC1; p=reject; adkim=s; aspf=r; rua=mailto:dmarc-feedback@; ruf=mailto:dmarc-feedback@; pct=100" -``` - -Example: - - -``` -_dmarc TXT "v=DMARC1; p=reject; adkim=s; aspf=r; rua=mailto:dmarc-feedback@genosyn.com; ruf=mailto:dmarc-feedback@genosyn.com; pct=100" -``` - - -# Test, Test, Test. - -Use https://www.mail-tester.com/ to test emails. \ No newline at end of file diff --git a/Haraka/config/auth_flat_file.ini b/Haraka/config/auth_flat_file.ini deleted file mode 100644 index 856bfad544..0000000000 --- a/Haraka/config/auth_flat_file.ini +++ /dev/null @@ -1,4 +0,0 @@ -[core] -methods=PLAIN - -[users] diff --git a/Haraka/config/dkim_sign.ini b/Haraka/config/dkim_sign.ini deleted file mode 100644 index b0f1d962d3..0000000000 --- a/Haraka/config/dkim_sign.ini +++ /dev/null @@ -1,3 +0,0 @@ -disabled = false -selector = haraka -headers_to_sign = From, Sender, Reply-To, Subject, Date, Message-ID, To, Cc, MIME-Version diff --git a/Haraka/config/host_list b/Haraka/config/host_list deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/Haraka/config/loglevel b/Haraka/config/loglevel deleted file mode 100644 index c17031a7a5..0000000000 --- a/Haraka/config/loglevel +++ /dev/null @@ -1 +0,0 @@ -DEBUG \ No newline at end of file diff --git a/Haraka/config/plugins b/Haraka/config/plugins deleted file mode 100644 index f8fd4ba182..0000000000 --- a/Haraka/config/plugins +++ /dev/null @@ -1,5 +0,0 @@ -tls -auth/flat_file -dkim_sign - -# email_parser \ No newline at end of file diff --git a/Haraka/config/smtp.ini b/Haraka/config/smtp.ini deleted file mode 100644 index 8b9c94a586..0000000000 --- a/Haraka/config/smtp.ini +++ /dev/null @@ -1,64 +0,0 @@ -; address to listen on (default: all IPv6 and IPv4 addresses, port 25) -; use "[::0]:25" to listen on IPv6 and IPv4 (not all OSes) -listen=[::0]:2525 - -; Note you can listen on multiple IPs/ports using commas: -;listen=127.0.0.1:2529,127.0.0.2:2529,127.0.0.3:2530 - -; public IP address (default: none) -; If your machine is behind a NAT, some plugins (SPF, GeoIP) gain features -; if they know the servers public IP. If 'stun' is installed, Haraka will -; try to figure it out. If that doesn't work, set it here. -;public_ip=N.N.N.N - -; Time in seconds to let sockets be idle with no activity -;inactivity_timeout=300 - -; Drop privileges to this user/group -;user=smtp -;group=smtp - -; Don't stop Haraka if plugins fail to compile -;ignore_bad_plugins=0 - -; Run using cluster to fork multiple backend processes -;nodes=cpus - -; Daemonize -;daemonize=true -;daemon_log_file=/var/log/haraka.log -;daemon_pid_file=/var/run/haraka.pid - -; Spooling -; Save memory by spooling large messages to disk -;spool_dir=/var/spool/haraka -; Specify -1 to never spool to disk -; Specify 0 to always spool to disk -; Otherwise specify a size in bytes, once reached the -; message will be spooled to disk to save memory. -;spool_after= - -; Force Shutdown Timeout -; - Haraka tries to close down gracefully, but if everything is shut down -; after this time it will hard close. 30s is usually long enough to -; wait for outbound connections to finish. -;force_shutdown_timeout=30 - -; SMTP service extensions: https://tools.ietf.org/html/rfc1869 -; strict_rfc1869 = false - -; Advertise support for SMTPUTF8 (RFC-6531) -;smtputf8=true - -[headers] -;add_received=true -;clean_auth_results=true - -; replace header_hide_version -;show_version=true - -; replace max_header_lines -max_lines=1000 - -; replace max_received_count -max_received=100 diff --git a/Haraka/config/tls.ini b/Haraka/config/tls.ini deleted file mode 100644 index 754bc32f38..0000000000 --- a/Haraka/config/tls.ini +++ /dev/null @@ -1 +0,0 @@ -no_starttls_ports[]=2525 \ No newline at end of file diff --git a/Haraka/dkim/generate.sh b/Haraka/dkim/generate.sh deleted file mode 100644 index 1bee2b44d8..0000000000 --- a/Haraka/dkim/generate.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh - - -cd keys - -openssl genrsa -out private 4096 -chmod 0400 private -openssl rsa -in private -out public -pubout - -cd .. - -bash show-info.sh diff --git a/Haraka/dkim/keys/README.md b/Haraka/dkim/keys/README.md deleted file mode 100644 index 9d54cb9810..0000000000 --- a/Haraka/dkim/keys/README.md +++ /dev/null @@ -1 +0,0 @@ -This is where all the keys are stored. \ No newline at end of file diff --git a/Haraka/dkim/show-info.sh b/Haraka/dkim/show-info.sh deleted file mode 100644 index 1495b2a09a..0000000000 --- a/Haraka/dkim/show-info.sh +++ /dev/null @@ -1,30 +0,0 @@ -cd keys - -cat private | base64 -w0 > private_base64.txt -cat public | base64 -w0 > public_base64.txt - -echo "" -echo "" -echo "" - - -echo "Add this to docker compose file - DKIM private key for env var is:" -cat private_base64.txt - -echo "" -echo "" -echo "" - -echo "Add this to docker compose file - DKIM public key for env var is:" -cat public_base64.txt - -echo "" -echo "" -echo "" - -echo "You need to add this to DNS" -echo "Type: TXT" -echo "Key: haraka._domainkey" -echo "v=DKIM1;p=$(grep -v '^-' public | tr -d '\n')" - -cd .. \ No newline at end of file diff --git a/Haraka/docs/plugins/email_parser.md b/Haraka/docs/plugins/email_parser.md deleted file mode 100644 index 6c9cf45ef1..0000000000 --- a/Haraka/docs/plugins/email_parser.md +++ /dev/null @@ -1,13 +0,0 @@ -email_parser -======== - -Parses email messages and extracts the following information: - -* `from` - the email address of the sender -* `to` - the email address of the recipient -* `subject` - the subject of the email -* `body` - the body of the email - -Configuration -------------- -* `config/email_parser` - describe what effect this config file has diff --git a/Haraka/init.sh b/Haraka/init.sh deleted file mode 100644 index f539df420a..0000000000 --- a/Haraka/init.sh +++ /dev/null @@ -1,29 +0,0 @@ - - -# Setup auth -echo "domain = $DOMAIN" >> /harakaapp/config/dkim_sign.ini -echo "$DOMAIN" > /harakaapp/config/host_list -echo "$INCOMING_EMAIL_DOMAIN" >> /harakaapp/config/host_list -echo "$DOMAIN" > /harakaapp/config/me -echo "$SMTP_EMAIL=$SMTP_PASSWORD" >> /harakaapp/config/auth_flat_file.ini - -openssl req -x509 -nodes -days 2190 -newkey rsa:2048 -keyout /harakaapp/config/tls_key.pem -out /harakaapp/config/tls_cert.pem -subj "/C=US/ST=Massachusetts/L=Boston/O=Hackerbay/CN=$DOMAIN" - -# DKIM -mkdir -p /harakaapp/config/dkim/$DOMAIN -touch /harakaapp/config/dkim/$DOMAIN/selector -echo "$DKIM_SELECTOR" > /harakaapp/config/dkim/$DOMAIN/selector - -# Decode keys from base64 -echo "$DKIM_PUBLIC_KEY" | base64 -d > /harakaapp/config/dkim/$DOMAIN/public -echo "$DKIM_PRIVATE_KEY" | base64 -d > /harakaapp/config/dkim/$DOMAIN/private - -echo "IMPORTANT: Add this to your DNS" -echo "You need to add this to DNS" -echo "Type: TXT" -echo "Key: $DKIM_SELECTOR._domainkey" -echo "v=DKIM1;p=$(grep -v '^-' /harakaapp/config/dkim/$DOMAIN/public | tr -d '\n')" - - -# Run haraka -haraka -c /harakaapp \ No newline at end of file diff --git a/Haraka/package-lock.json b/Haraka/package-lock.json deleted file mode 100644 index ff4fa1325c..0000000000 --- a/Haraka/package-lock.json +++ /dev/null @@ -1,316 +0,0 @@ -{ - "name": "haraka", - "version": "1.0.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "haraka", - "version": "1.0.0", - "license": "ISC", - "dependencies": { - "mailparser": "^3.7.1" - } - }, - "node_modules/@selderee/plugin-htmlparser2": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@selderee/plugin-htmlparser2/-/plugin-htmlparser2-0.11.0.tgz", - "integrity": "sha512-P33hHGdldxGabLFjPPpaTxVolMrzrcegejx+0GxjrIb9Zv48D8yAIA/QTDR2dFl7Uz7urX8aX6+5bCZslr+gWQ==", - "dependencies": { - "domhandler": "^5.0.3", - "selderee": "^0.11.0" - }, - "funding": { - "url": "https://ko-fi.com/killymxi" - } - }, - "node_modules/deepmerge": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", - "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/dom-serializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", - "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", - "dependencies": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.2", - "entities": "^4.2.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - } - }, - "node_modules/domelementtype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ] - }, - "node_modules/domhandler": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", - "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", - "dependencies": { - "domelementtype": "^2.3.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, - "node_modules/domutils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", - "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", - "dependencies": { - "dom-serializer": "^2.0.0", - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" - } - }, - "node_modules/encoding-japanese": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/encoding-japanese/-/encoding-japanese-2.1.0.tgz", - "integrity": "sha512-58XySVxUgVlBikBTbQ8WdDxBDHIdXucB16LO5PBHR8t75D54wQrNo4cg+58+R1CtJfKnsVsvt9XlteRaR8xw1w==", - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/entities": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "bin": { - "he": "bin/he" - } - }, - "node_modules/html-to-text": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/html-to-text/-/html-to-text-9.0.5.tgz", - "integrity": "sha512-qY60FjREgVZL03vJU6IfMV4GDjGBIoOyvuFdpBDIX9yTlDw0TjxVBQp+P8NvpdIXNJvfWBTNul7fsAQJq2FNpg==", - "dependencies": { - "@selderee/plugin-htmlparser2": "^0.11.0", - "deepmerge": "^4.3.1", - "dom-serializer": "^2.0.0", - "htmlparser2": "^8.0.2", - "selderee": "^0.11.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/htmlparser2": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz", - "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==", - "funding": [ - "https://github.com/fb55/htmlparser2?sponsor=1", - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "dependencies": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3", - "domutils": "^3.0.1", - "entities": "^4.4.0" - } - }, - "node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/leac": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/leac/-/leac-0.6.0.tgz", - "integrity": "sha512-y+SqErxb8h7nE/fiEX07jsbuhrpO9lL8eca7/Y1nuWV2moNlXhyd59iDGcRf6moVyDMbmTNzL40SUyrFU/yDpg==", - "funding": { - "url": "https://ko-fi.com/killymxi" - } - }, - "node_modules/libbase64": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/libbase64/-/libbase64-1.3.0.tgz", - "integrity": "sha512-GgOXd0Eo6phYgh0DJtjQ2tO8dc0IVINtZJeARPeiIJqge+HdsWSuaDTe8ztQ7j/cONByDZ3zeB325AHiv5O0dg==" - }, - "node_modules/libmime": { - "version": "5.3.5", - "resolved": "https://registry.npmjs.org/libmime/-/libmime-5.3.5.tgz", - "integrity": "sha512-nSlR1yRZ43L3cZCiWEw7ali3jY29Hz9CQQ96Oy+sSspYnIP5N54ucOPHqooBsXzwrX1pwn13VUE05q4WmzfaLg==", - "dependencies": { - "encoding-japanese": "2.1.0", - "iconv-lite": "0.6.3", - "libbase64": "1.3.0", - "libqp": "2.1.0" - } - }, - "node_modules/libqp": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/libqp/-/libqp-2.1.0.tgz", - "integrity": "sha512-O6O6/fsG5jiUVbvdgT7YX3xY3uIadR6wEZ7+vy9u7PKHAlSEB6blvC1o5pHBjgsi95Uo0aiBBdkyFecj6jtb7A==" - }, - "node_modules/linkify-it": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz", - "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==", - "dependencies": { - "uc.micro": "^2.0.0" - } - }, - "node_modules/mailparser": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/mailparser/-/mailparser-3.7.1.tgz", - "integrity": "sha512-RCnBhy5q8XtB3mXzxcAfT1huNqN93HTYYyL6XawlIKycfxM/rXPg9tXoZ7D46+SgCS1zxKzw+BayDQSvncSTTw==", - "dependencies": { - "encoding-japanese": "2.1.0", - "he": "1.2.0", - "html-to-text": "9.0.5", - "iconv-lite": "0.6.3", - "libmime": "5.3.5", - "linkify-it": "5.0.0", - "mailsplit": "5.4.0", - "nodemailer": "6.9.13", - "punycode.js": "2.3.1", - "tlds": "1.252.0" - } - }, - "node_modules/mailsplit": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/mailsplit/-/mailsplit-5.4.0.tgz", - "integrity": "sha512-wnYxX5D5qymGIPYLwnp6h8n1+6P6vz/MJn5AzGjZ8pwICWssL+CCQjWBIToOVHASmATot4ktvlLo6CyLfOXWYA==", - "dependencies": { - "libbase64": "1.2.1", - "libmime": "5.2.0", - "libqp": "2.0.1" - } - }, - "node_modules/mailsplit/node_modules/encoding-japanese": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/encoding-japanese/-/encoding-japanese-2.0.0.tgz", - "integrity": "sha512-++P0RhebUC8MJAwJOsT93dT+5oc5oPImp1HubZpAuCZ5kTLnhuuBhKHj2jJeO/Gj93idPBWmIuQ9QWMe5rX3pQ==", - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/mailsplit/node_modules/libbase64": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/libbase64/-/libbase64-1.2.1.tgz", - "integrity": "sha512-l+nePcPbIG1fNlqMzrh68MLkX/gTxk/+vdvAb388Ssi7UuUN31MI44w4Yf33mM3Cm4xDfw48mdf3rkdHszLNew==" - }, - "node_modules/mailsplit/node_modules/libmime": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/libmime/-/libmime-5.2.0.tgz", - "integrity": "sha512-X2U5Wx0YmK0rXFbk67ASMeqYIkZ6E5vY7pNWRKtnNzqjvdYYG8xtPDpCnuUEnPU9vlgNev+JoSrcaKSUaNvfsw==", - "dependencies": { - "encoding-japanese": "2.0.0", - "iconv-lite": "0.6.3", - "libbase64": "1.2.1", - "libqp": "2.0.1" - } - }, - "node_modules/mailsplit/node_modules/libqp": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/libqp/-/libqp-2.0.1.tgz", - "integrity": "sha512-Ka0eC5LkF3IPNQHJmYBWljJsw0UvM6j+QdKRbWyCdTmYwvIDE6a7bCm0UkTAL/K+3KXK5qXT/ClcInU01OpdLg==" - }, - "node_modules/nodemailer": { - "version": "6.9.13", - "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.9.13.tgz", - "integrity": "sha512-7o38Yogx6krdoBf3jCAqnIN4oSQFx+fMa0I7dK1D+me9kBxx12D+/33wSb+fhOCtIxvYJ+4x4IMEhmhCKfAiOA==", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/parseley": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/parseley/-/parseley-0.12.1.tgz", - "integrity": "sha512-e6qHKe3a9HWr0oMRVDTRhKce+bRO8VGQR3NyVwcjwrbhMmFCX9KszEV35+rn4AdilFAq9VPxP/Fe1wC9Qjd2lw==", - "dependencies": { - "leac": "^0.6.0", - "peberminta": "^0.9.0" - }, - "funding": { - "url": "https://ko-fi.com/killymxi" - } - }, - "node_modules/peberminta": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/peberminta/-/peberminta-0.9.0.tgz", - "integrity": "sha512-XIxfHpEuSJbITd1H3EeQwpcZbTLHc+VVr8ANI9t5sit565tsI4/xK3KWTUFE2e6QiangUkh3B0jihzmGnNrRsQ==", - "funding": { - "url": "https://ko-fi.com/killymxi" - } - }, - "node_modules/punycode.js": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz", - "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==", - "engines": { - "node": ">=6" - } - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "node_modules/selderee": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/selderee/-/selderee-0.11.0.tgz", - "integrity": "sha512-5TF+l7p4+OsnP8BCCvSyZiSPc4x4//p5uPwK8TCnVPJYRmU2aYKMpOXvw8zM5a5JvuuCGN1jmsMwuU2W02ukfA==", - "dependencies": { - "parseley": "^0.12.0" - }, - "funding": { - "url": "https://ko-fi.com/killymxi" - } - }, - "node_modules/tlds": { - "version": "1.252.0", - "resolved": "https://registry.npmjs.org/tlds/-/tlds-1.252.0.tgz", - "integrity": "sha512-GA16+8HXvqtfEnw/DTcwB0UU354QE1n3+wh08oFjr6Znl7ZLAeUgYzCcK+/CCrOyE0vnHR8/pu3XXG3vDijXpQ==", - "bin": { - "tlds": "bin.js" - } - }, - "node_modules/uc.micro": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz", - "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==" - } - } -} diff --git a/Haraka/package.json b/Haraka/package.json deleted file mode 100644 index 73278e02ca..0000000000 --- a/Haraka/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "haraka", - "version": "1.0.0", - "description": "``` sudo docker build . -t haraka:latest ```", - "main": "index.js", - "directories": { - "doc": "docs" - }, - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "author": "", - "license": "ISC", - "dependencies": { - "mailparser": "^3.7.1" - } -} diff --git a/Haraka/plugins/email_parser.js b/Haraka/plugins/email_parser.js deleted file mode 100644 index 79063e938f..0000000000 --- a/Haraka/plugins/email_parser.js +++ /dev/null @@ -1,29 +0,0 @@ -// const MailParser = require('mailparser').MailParser; - -// exports.hook_data_post = function (next, connection) { -// // Get the email data -// var email_data = connection.transaction.data_lines.join('\n'); - -// // Parse the email data -// var mailparser = new MailParser(); - -// mailparser.on('end', function(mail_object){ -// // Log the email data -// connection.loginfo('Subject: ' + mail_object.subject); -// connection.loginfo('From: ' + JSON.stringify(mail_object.from)); -// connection.loginfo('To: ' + JSON.stringify(mail_object.to)); -// connection.loginfo('Text: ' + mail_object.text); -// connection.loginfo('HTML: ' + mail_object.html); -// }); - -// mailparser.write(email_data); -// mailparser.end(); - -// next(); -// }; - -exports.hook_rcpt = function (next, connection, params) { - const rcpt = params[0]; - this.loginfo("Got recipient: " + rcpt); - next(); -}; diff --git a/HelmChart/Public/install.sh b/HelmChart/Public/install.sh index 7e08530e37..3fa155dfa3 100755 --- a/HelmChart/Public/install.sh +++ b/HelmChart/Public/install.sh @@ -215,17 +215,9 @@ then # install services. if [[ "$2" == "enterprise" ]] then - sudo helm install -f ./kubernetes/values-enterprise-ci.yaml fi ./HelmChart/public/oneuptime \ - --set haraka.domain=$DOMAIN \ - --set haraka.dkimPrivateKey=$DKIM_PRIVATE_KEY \ - --set haraka.tlsCert=$TLS_CERT \ - --set haraka.tlsKey=$TLS_KEY + sudo helm install -f ./kubernetes/values-enterprise-ci.yaml fi ./HelmChart/public/oneuptime else - sudo helm install -f ./kubernetes/values-saas-ci.yaml fi ./HelmChart/public/oneuptime \ - --set haraka.domain=$DOMAIN \ - --set haraka.dkimPrivateKey=$DKIM_PRIVATE_KEY \ - --set haraka.tlsCert=$TLS_CERT \ - --set haraka.tlsKey=$TLS_KEY + sudo helm install -f ./kubernetes/values-saas-ci.yaml fi ./HelmChart/public/oneuptime fi else sudo k delete job oneuptime-InitScript || echo "InitScript already deleted" @@ -238,11 +230,7 @@ else sudo helm install fi oneuptime/OneUptime \ --set nginx-ingress-controller.service.type=NodePort \ --set nginx-ingress-controller.hostNetwork=true \ - --set image.tag=$AVAILABLE_VERSION \ - --set haraka.domain=$DOMAIN \ - --set haraka.dkimPrivateKey=$DKIM_PRIVATE_KEY \ - --set haraka.tlsCert=$TLS_CERT \ - --set haraka.tlsKey=$TLS_KEY + --set image.tag=$AVAILABLE_VERSION else updateinstallation fi diff --git a/HelmChart/Public/oneuptime/README.md b/HelmChart/Public/oneuptime/README.md index b309272a0f..5b27855e99 100644 --- a/HelmChart/Public/oneuptime/README.md +++ b/HelmChart/Public/oneuptime/README.md @@ -106,11 +106,6 @@ The following table lists the configurable parameters of the OneUptime chart and | `probes..additionalContainers` | Additional containers to add to the probe pod | `nil` | | | `probes..resources` | Pod resources (limits, requests) | `nil` | | | `statusPage.cnameRecord` | CNAME record for the status page | `nil` | | -| `internalSmtp.sendingDomain` | Domain to send emails from | `nil` | | -| `internalSmtp.dkimPrivateKey` | DKIM Private Key that is set for sending domain | `nil` | | -| `internalSmtp.dkimPublicKey` | DKIM Public Key that is set for sending domain | `nil` | | -| `internalSmtp.email` | Email address to send emails from | `nil` | | -| `internalSmtp.name` | Name to send emails from | `nil` | | | `logLevel` | Can be one of the following - INFO, WARN, ERROR, DEBUG | `INFO` | | | `incidents.disableAutomaticCreation` | Disable incident creation (use this when your team is overloaded with incidents or in emergencies) | `false` | | | `alerts.disableAutomaticCreation` | Disable alert creation (use this when your team is overloaded with alerts or in emergencies) | `false` | | diff --git a/HelmChart/Public/oneuptime/templates/app.yaml b/HelmChart/Public/oneuptime/templates/app.yaml index 0881d24e5a..938f88f431 100644 --- a/HelmChart/Public/oneuptime/templates/app.yaml +++ b/HelmChart/Public/oneuptime/templates/app.yaml @@ -91,14 +91,6 @@ spec: value: {{ $.Values.billing.smsDefaultValueInCents | quote }} - name: CALL_DEFAULT_COST_IN_CENTS_PER_MINUTE value: {{ $.Values.billing.callDefaultValueInCentsPerMinute | quote }} - - name: INTERNAL_SMTP_HOST - value: {{ printf "%s-haraka.%s.svc.%s" $.Release.Name $.Release.Namespace $.Values.global.clusterDomain | quote }} - - name: INTERNAL_SMTP_FROM_NAME - value: {{ $.Values.internalSmtp.name | quote }} - - name: INTERNAL_SMTP_EMAIL - value: {{ $.Values.internalSmtp.email | quote }} - - name: INTERNAL_SMTP_PASSWORD - value: "internal_smtp_password" - name: DISABLE_TELEMETRY value: {{ $.Values.app.disableTelemetryCollection | quote }} diff --git a/HelmChart/Public/oneuptime/templates/haraka.yaml b/HelmChart/Public/oneuptime/templates/haraka.yaml deleted file mode 100644 index 20d5bb594a..0000000000 --- a/HelmChart/Public/oneuptime/templates/haraka.yaml +++ /dev/null @@ -1,83 +0,0 @@ -{{- if $.Values.internalSmtp.enabled -}} - -# OneUptime haraka Deployment -{{- $harakaQueue := dict "SizeLimit" "1Gi" "MountPath" "/harakaapp/queue" -}} -{{- $harakaVolumes := dict "haraka-queue" $harakaQueue -}} -{{- $harakaPorts := dict "port" $.Values.port.haraka -}} -{{- $harakaEnv := dict "SMTP_EMAIL" $.Values.internalSmtp.email "SMTP_PASSWORD" "internal_smtp_password" "DKIM_SELECTOR" "oneuptime" "DOMAIN" $.Values.internalSmtp.sendingDomain "INCOMING_EMAIL_DOMAIN" $.Values.internalSmtp.incomingEmailDomain "DKIM_PRIVATE_KEY" $.Values.internalSmtp.dkimPrivateKey "DKIM_PUBLIC_KEY" $.Values.internalSmtp.dkimPublicKey -}} -{{- $harakaDeploymentArgs :=dict "ServiceName" "haraka" "Ports" $harakaPorts "Release" $.Release "Values" $.Values "Env" $harakaEnv "Volumes" $harakaVolumes "Resources" $.Values.haraka.resources "DisableAutoscaler" $.Values.haraka.disableAutoscaler -}} -{{- include "oneuptime.deployment" $harakaDeploymentArgs }} ---- - -apiVersion: v1 -kind: Service -metadata: - labels: - app: {{ printf "%s-%s" $.Release.Name "haraka" }} - app.kubernetes.io/part-of: oneuptime - app.kubernetes.io/managed-by: Helm - appname: oneuptime - name: {{ printf "%s-%s" $.Release.Name "haraka" }} - namespace: {{ $.Release.Namespace }} - annotations: - {{- if $.Values.metalLb.enabled }} - metallb.universe.tf/address-pool: {{ printf "%s-%s" $.Release.Name "metallb-address-pool" }} - {{- end }} -spec: - {{- if $.Values.internalSmtp.service.loadBalancerIP }} - loadBalancerIP: {{ $.Values.internalSmtp.service.loadBalancerIP }} - {{- end }} - {{- if $.Values.internalSmtp.service.externalIPs }} - externalIPs: - {{- range $key, $val := $.Values.internalSmtp.service.externalIPs }} - - {{ $val }} - {{- end }} - {{- end }} - ports: - - name: pop3 - protocol: TCP - port: 110 - targetPort: 110 - - name: imap - protocol: TCP - port: 143 - targetPort: 143 - - name: pop3s - protocol: TCP - port: 995 - targetPort: 995 - - name: imaps - protocol: TCP - port: 993 - targetPort: 993 - - name: smtp - protocol: TCP - port: 25 - targetPort: 25 - - name: submission - protocol: TCP - port: 587 - targetPort: 587 - - name: smtps - protocol: TCP - port: 465 - targetPort: 465 - - name: haraka - protocol: TCP - port: 2525 - targetPort: 2525 - selector: - app: {{ printf "%s-%s" $.Release.Name "internalSmtp" }} - {{- if ($.Values.internalSmtp.service.type) }} - type: {{ $.Values.internalSmtp.service.type }} - {{- else }} - type: ClusterIP - {{- end}} ---- - -# OneUptime haraka autoscaler -{{- $harakaAutoScalerArgs := dict "ServiceName" "haraka" "Release" $.Release "Values" $.Values "DisableAutoscaler" $.Values.haraka.disableAutoscaler -}} -{{- include "oneuptime.autoscaler" $harakaAutoScalerArgs }} ---- - -{{- end -}} \ No newline at end of file diff --git a/HelmChart/Public/oneuptime/templates/secrets.yaml b/HelmChart/Public/oneuptime/templates/secrets.yaml index 37013fc59d..d1ad40843c 100644 --- a/HelmChart/Public/oneuptime/templates/secrets.yaml +++ b/HelmChart/Public/oneuptime/templates/secrets.yaml @@ -12,7 +12,6 @@ stringData: ## This is a workaround to keep the secrets unchanged {{- if .Release.IsUpgrade }} - internal-smtp: {{ index (lookup "v1" "Secret" $.Release.Namespace (printf "%s-secrets" $.Release.Name)).data "internal-smtp" | b64dec }} oneuptime-secret: {{ index (lookup "v1" "Secret" $.Release.Namespace (printf "%s-secrets" $.Release.Name)).data "oneuptime-secret" | b64dec }} encryption-secret: {{ index (lookup "v1" "Secret" $.Release.Namespace (printf "%s-secrets" $.Release.Name)).data "encryption-secret" | b64dec }} @@ -26,7 +25,6 @@ stringData: {{ else }} # install operation - internal-smtp: {{ randAlphaNum 32 | quote }} oneuptime-secret: {{ randAlphaNum 32 | quote }} encryption-secret: {{ randAlphaNum 32 | quote }} diff --git a/HelmChart/Public/oneuptime/values.yaml b/HelmChart/Public/oneuptime/values.yaml index 008fdd1861..4c64d1baa1 100644 --- a/HelmChart/Public/oneuptime/values.yaml +++ b/HelmChart/Public/oneuptime/values.yaml @@ -179,22 +179,6 @@ vapid: privateKey: subject: mailto:support@oneuptime.com -internalSmtp: - enabled: true - incomingEmailDomain: - sendingDomain: - dkimPrivateKey: - dkimPublicKey: - email: - name: - service: - loadBalancerIP: - # Change this to LoadBalancer if you want to receive emails from the internet. This could be useful for Incoming Email monitors. - type: ClusterIP - externalIPs: - # - 51.158.55.153 # Please make sure this is the same as the one in metalLb.ipAdddressPool.addresses - - incidents: disableAutomaticCreation: false @@ -257,7 +241,6 @@ port: nginxHttp: 80 # If you are connecting Status Pages to custom domains, then this will be the port where the status page will be hosted on. statusPageHttpsPort: 443 - haraka: 2525 otelCollectorGrpc: 4317 otelCollectorHttp: 4318 isolatedVM: 4572 @@ -475,10 +458,6 @@ adminDashboard: disableAutoscaler: false resources: -haraka: - disableAutoscaler: false - resources: - worker: disableTelemetryCollection: false disableAutoscaler: false diff --git a/Home/Static/robots.txt b/Home/Static/robots.txt index a2d64f3c6e..8fead69caa 100644 --- a/Home/Static/robots.txt +++ b/Home/Static/robots.txt @@ -2,6 +2,5 @@ User-agent: * Disallow: /api/* Disallow: /StatusPage/* Disallow: /admin/* -Disallow: /haraka/* Disallow: /dashboard/* Sitemap: https://oneuptime.com/sitemap.xml \ No newline at end of file diff --git a/Worker/DataMigrations/AddDefaultGlobalConfig.ts b/Worker/DataMigrations/AddDefaultGlobalConfig.ts index 27ff6b297e..a789e06870 100644 --- a/Worker/DataMigrations/AddDefaultGlobalConfig.ts +++ b/Worker/DataMigrations/AddDefaultGlobalConfig.ts @@ -15,7 +15,7 @@ export default class AddDefaultGlobalConfig extends DataMigrationBase { const globalConfig: GlobalConfig = new GlobalConfig(); globalConfig.id = ObjectID.getZeroObjectID(); - globalConfig.emailServerType = EmailServerType.Internal; + globalConfig.emailServerType = EmailServerType.CustomSMTP; globalConfig.sendgridFromName = "OneUptime"; globalConfig.smtpFromName = "OneUptime"; diff --git a/Worker/DataMigrations/UpdateGlobalCongfigFromEnv.ts b/Worker/DataMigrations/UpdateGlobalCongfigFromEnv.ts index 5d52eab2cd..7272c602f1 100644 --- a/Worker/DataMigrations/UpdateGlobalCongfigFromEnv.ts +++ b/Worker/DataMigrations/UpdateGlobalCongfigFromEnv.ts @@ -13,11 +13,7 @@ export default class UpdateGlobalConfigFromEnv extends DataMigrationBase { public override async migrate(): Promise { // get all the users with email isVerified true. - let emailServerType: EmailServerType = EmailServerType.Internal; - - if (process.env["USE_INTERNAL_SMTP"] !== "true") { - emailServerType = EmailServerType.CustomSMTP; - } + let emailServerType: EmailServerType = EmailServerType.CustomSMTP; if (process.env["SENDGRID_API_KEY"]) { emailServerType = EmailServerType.Sendgrid; diff --git a/config.example.env b/config.example.env index 9c598d4ed1..22e7a7528b 100644 --- a/config.example.env +++ b/config.example.env @@ -25,7 +25,6 @@ REDIS_PASSWORD=please-change-this-to-random-value ENCRYPTION_SECRET=please-change-this-to-random-value GLOBAL_PROBE_1_KEY=please-change-this-to-random-value GLOBAL_PROBE_2_KEY=please-change-this-to-random-value -INTERNAL_SMTP_PASSWORD=please-change-this-to-random-value @@ -135,13 +134,6 @@ WORKFLOW_PORT=3099 API_REFERENCE_PORT=1446 DOCS_PORT=1447 -# If USE_INTERNAL_SMTP is true then you need to fill these values. -INTERNAL_SMTP_FROM_NAME=OneUptime -INTERNAL_SMTP_DKIM_PRIVATE_KEY_AS_BASE64= -INTERNAL_SMTP_DKIM_PUBLIC_KEY_AS_BASE64= -INTERNAL_SMTP_EMAIL=test@yourcompany.com -INTERNAL_SMTP_SENDING_DOMAIN=yourcompany.com - # Plans # This is in the format of PlanName,PlanIdFromBillingProvider,MonthlySubscriptionPlanAmountInUSD,YearlySubscriptionPlanAmountInUSD,Order,TrialPeriodInDays # Enterprise plan will have -1 which means custom pricing. diff --git a/docker-compose.base.yml b/docker-compose.base.yml index 5b6ce7d69f..15cf032eef 100644 --- a/docker-compose.base.yml +++ b/docker-compose.base.yml @@ -135,24 +135,6 @@ x-common-server-variables: &common-server-variables services: - haraka: - networks: - - oneuptime - image: oneuptime/haraka:${APP_TAG} - restart: always - environment: - SMTP_PASSWORD: ${INTERNAL_SMTP_PASSWORD} - SMTP_EMAIL: ${INTERNAL_SMTP_EMAIL} - DKIM_SELECTOR: oneuptime - DOMAIN: ${INTERNAL_SMTP_SENDING_DOMAIN} - DKIM_PRIVATE_KEY: ${INTERNAL_SMTP_DKIM_PRIVATE_KEY_AS_BASE64} - DKIM_PUBLIC_KEY: ${INTERNAL_SMTP_DKIM_PUBLIC_KEY_AS_BASE64} - logging: - driver: "local" - options: - max-size: "1000m" - - redis: image: redis:7.0.12 restart: always @@ -297,9 +279,6 @@ services: CALL_DEFAULT_COST_IN_CENTS_PER_MINUTE: ${CALL_DEFAULT_COST_IN_CENTS_PER_MINUTE} SMS_HIGH_RISK_COST_IN_CENTS: ${SMS_HIGH_RISK_COST_IN_CENTS} CALL_HIGH_RISK_COST_IN_CENTS_PER_MINUTE: ${CALL_HIGH_RISK_COST_IN_CENTS_PER_MINUTE} - INTERNAL_SMTP_EMAIL: ${INTERNAL_SMTP_EMAIL} - INTERNAL_SMTP_FROM_NAME: ${INTERNAL_SMTP_FROM_NAME} - INTERNAL_SMTP_PASSWORD: ${INTERNAL_SMTP_PASSWORD} DISABLE_TELEMETRY: ${DISABLE_TELEMETRY_FOR_APP} logging: driver: "local" diff --git a/docker-compose.dev.yml b/docker-compose.dev.yml index 3f5bde34a8..21b5d8b9bd 100644 --- a/docker-compose.dev.yml +++ b/docker-compose.dev.yml @@ -3,15 +3,6 @@ services: - haraka: - extends: - file: ./docker-compose.base.yml - service: haraka - build: - network: host - context: . - dockerfile: ./Haraka/Dockerfile - redis: ports: - '6310:6379' diff --git a/docker-compose.yml b/docker-compose.yml index bc67fd71d5..a93da3b540 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -3,11 +3,6 @@ services: - haraka: - extends: - file: ./docker-compose.base.yml - service: haraka - redis: extends: file: ./docker-compose.base.yml