Skip to content

useSend #2403

Description

@MickLesk

Name of the Script

useSend

Script Type

CT (LXC Container)

Script path

No response

Where does it run?

Proxmox VE host

Does this script support arm64?

arm64 supported

📋 Script Details

useSend is an open-source email sending platform and self-hosted alternative to Resend, SendGrid or Postmark. It sends transactional email through a REST API, SDKs or SMTP, and marketing campaigns to contact books from a visual editor, with domain verification, delivery, open and click tracking, bounces, suppression lists and webhooks. Delivery runs through Amazon SES. This script builds the web app and the SMTP proxy from source and runs them with PostgreSQL and Redis.

Activity

  1. github-actions commented on Oct 9, 2026

    @github-actions
    Contributor

    The useSend script is ready for testing. Run it in the Proxmox VE shell (or on an Incus host) to create a container:

    bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/DevScripts/main/ct/usesend.sh)"
    

    useSend has no local accounts. Sign-in is GitHub OAuth (Google OAuth works too, but only behind an HTTPS domain); the email code login cannot work on a fresh instance, because useSend sends that code through its own verified SES domain. Create a GitHub OAuth app with the callback URL http://:3000/api/auth/callback/github and pass var_github_id and var_github_secret, or fill in GITHUB_ID and GITHUB_SECRET in /opt/usesend_data/.env afterwards and run systemctl enable --now usesend usesend-smtp. The services do not start until then.
    The first sign-in creates the account, after that only email addresses with a team invitation can sign up. Until then anyone with a GitHub account who reaches the port can claim the instance, so sign in right after setting up OAuth.
    Sending needs Amazon SES. useSend installs and runs without it, but no email leaves until AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY of an IAM user with AmazonSESFullAccess and AmazonSNSFullAccess are set in /opt/usesend_data/.env and SES is added under Admin with a region and a callback URL. That URL must be reachable from the internet, because SNS posts delivery, bounce and complaint events to it. New SES accounts start in sandbox mode and only send to verified addresses.
    NEXTAUTH_URL in /opt/usesend_data/.env is http://:3000. Change it together with the OAuth callback URL when the IP changes or useSend runs behind a domain, then run systemctl restart usesend.
    The SMTP proxy (usesend-smtp) accepts mail on 465 and 2465 (TLS) and 587 and 2587 (STARTTLS), user usesend and a useSend API key as password, and hands it to the API. Its certificate in /etc/ssl/usesend is self-signed and valid for one year. Port 25 is offered too unless another mail server already listens there.
    Install and every update build useSend from source (Next.js), which takes about 15 minutes on 2 cores and needs the 4 GB of RAM. The running services use about 400 MB, so the RAM can be lowered after the install and raised again before an update.

    Note: This is not in the official repo yet—it's just a dev version! After merging into ProxmoxVE, it will need to be recreated.

    Discord testing thread: https://discord.com/channels/1302816934508630047/1558017239125590028

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions