{"repo":"knadh/listmonk","free":true,"listed":false,"github":"https://github.com/knadh/listmonk","clone":"git clone https://github.com/knadh/listmonk.git","description":"High performance, self-hosted, newsletter and mailing list manager with a modern dashboard. Single binary app.","language":"Go","stars":22904,"topics":["campaign","campaign-management","email-marketing","email-subscription","listmonk","mailing-list","newsletter","newsletter-management","newsletter-software","self-hosted","sms-gateway","smtp","transactional-emails"],"license":"AGPL-3.0","category":"marketing_saas","readme_excerpt":"<a href=\"https://zerodha.tech\"><img src=\"https://zerodha.tech/static/images/github-badge.svg\" align=\"right\" /></a>\n\n[![listmonk-logo](https://user-images.githubusercontent.com/547147/231084896-835dba66-2dfe-497c-ba0f-787564c0819e.png)](https://listmonk.app)\n\nlistmonk is a standalone, self-hosted, newsletter and mailing list manager. It is fast, feature-rich, and packed into a single binary. It uses a PostgreSQL database as its data store.\n\n[![listmonk-dashboard](https://github.com/user-attachments/assets/689b5fbb-dd25-4956-a36f-e3226a65f9c4)](https://listmonk.app)\n\nVisit [listmonk.app](https://listmonk.app) for more info. Check out the [**live demo**](https://demo.listmonk.app).\n\n## Installation\n\n### Docker\n\nThe latest image is available on DockerHub at [`listmonk/listmonk:latest`](https://hub.docker.com/r/listmonk/listmonk/tags?page=1&ordering=last_updated&name=latest).\nDownload and use the sample [docker-compose.yml](https://github.com/knadh/listmonk/blob/master/docker-compose.yml).\n\n\n```shell\n# Download the compose file to the current directory.\ncurl -LO https://github.com/knadh/listmonk/raw/master/docker-compose.yml\n\n# Run the services in the background.\ndocker compose up -d\n```\nVisit `http://localhost:9000`\n\nSee [installation docs](https://listmonk.app/docs/installation)\n\n__________________\n\n### Binary\n- Download the [latest release](https://github.com/knadh/listmonk/releases) and extract the listmonk binary.\n- `./listmonk --new-config` to generate config.toml. Edit it.\n- `./listmonk --install` to setup the Postgres DB (or `--upgrade` to upgrade an existing DB. Upgrades are idempotent and running them multiple times have no side effects).\n- Run `./listmonk` and visit `http://localhost:9000`\n\nSee [installation docs](https://listmonk.app/docs/installation)\n__________________\n\n\n## Developers\nlistmonk is free and open source software licensed under AGPLv3. If you are interested in contributing, refer to the [developer setup](https://listmonk.app/docs/developer-setup). The backend is written in Go and the frontend is Vue with Buefy for UI. \n\n\n## License\nlistmonk is licensed under the AGPL v3 license.\n","default_branch":"master","files":508,"tree":[".devcontainer/devcontainer.json",".dockerignore",".gitattributes",".github/ISSUE_TEMPLATE/confirmed-bug.md",".github/ISSUE_TEMPLATE/feature-or-change-request.md",".github/ISSUE_TEMPLATE/general-question.md",".github/ISSUE_TEMPLATE/possible-bug--needs-investigation-.md",".github/workflows/build-sanity.yml",".github/workflows/github-pages.yml",".github/workflows/hodor-review.yml",".github/workflows/issues.yml",".github/workflows/nightly.yml",".github/workflows/release.yml",".gitignore",".go-version",".goreleaser-nightly.yml",".goreleaser.yml","CONTRIBUTING.md","Dockerfile","LICENSE","Makefile","README.md","SECURITY.md","VERSION","cmd/admin.go","cmd/archive.go","cmd/auth.go","cmd/bounce.go","cmd/campaigns.go","cmd/events.go","cmd/handlers.go","cmd/i18n.go","cmd/import.go","cmd/init.go","cmd/install.go","cmd/lists.go","cmd/main.go","cmd/maintenance.go","cmd/manager_store.go","cmd/media.go","cmd/public.go","cmd/roles.go","cmd/settings.go","cmd/subscribers.go","cmd/templates.go","cmd/tx.go","cmd/updates.go","cmd/upgrade.go","cmd/users.go","cmd/utils.go","config.toml.sample","dev/.gitignore","dev/README.md","dev/app.Dockerfile","dev/config.toml","dev/docker-compose.yml","docker-compose.yml","docker-entrypoint.sh","docs/README.md","docs/docs/content/apis/apis.md","docs/docs/content/apis/bounces.md","docs/docs/content/apis/campaigns.md","docs/docs/content/apis/import.md","docs/docs/content/apis/lists.md","docs/docs/content/apis/media.md","docs/docs/content/apis/sdks.md","docs/docs/content/apis/subscribers.md","docs/docs/content/apis/templates.md","docs/docs/content/apis/transactional.md","docs/docs/content/archives.md","docs/docs/content/bounces.md","docs/docs/content/concepts.md","docs/docs/content/configuration.md","docs/docs/content/developer-setup.md","docs/docs/content/external-integration.md","docs/docs/content/i18n.md","docs/docs/content/images/2021-09-28_00-18.png","docs/docs/content/images/archived-campaign-metadata.png","docs/docs/content/images/edit-subscriber.png","docs/docs/content/images/favicon.png","docs/docs/content/images/logo.svg","docs/docs/content/images/query-subscribers.png","docs/docs/content/images/splash.png","docs/docs/content/index.md","docs/docs/content/installation.md","docs/docs/content/maintenance/performance.md","docs/docs/content/messengers.md","docs/docs/content/oidc.md","docs/docs/content/querying-and-segmentation.md","docs/docs/content/roles-and-permissions.md","docs/docs/content/security-reports.md","docs/docs/content/static/style.css","docs/docs/content/templating.md","docs/docs/content/upgrade.md","docs/docs/mkdocs.yml","docs/docs/requirements.txt","docs/i18n/index.html","docs/i18n/main.js","docs/i18n/style.css","docs/i18n/vue.min.js","docs/site/.hugo_build.lock","docs/site/config.toml","docs/site/content/.gitignore","docs/site/data/github.json","docs/site/layouts/index.html","docs/site/layouts/page/single.html","docs/site/layouts/partials/footer.html","docs/site/layouts/partials/header.html","docs/site/layouts/shortcodes/centered.html","docs/site/layouts/shortcodes/github.html","docs/site/layouts/shortcodes/half.html","docs/site/layouts/shortcodes/section.html","docs/site/static/static/base.css","docs/site/static/static/images/analytics.webp","docs/site/static/static/images/favicon.webp","docs/site/static/static/images/host-cloudzy.svg","docs/site/static/static/images/host-elestio.webp","docs/site/static/static/images/host-kloudbean.svg","docs/site/static/static/images/host-lumadock.svg","docs/site/static/static/images/host-nodion.svg","docs/site/static/static/images/host-northflank.webp","docs/site/static/static/images/host-pikapods.svg","docs/site/static/static/images/host-railway.svg","docs/site/static/static/images/host-zeabur.svg","docs/site/static/static/images/host-zenith.svg","docs/site/static/static/images/listmonk.src.svg","docs/site/static/static/images/lists.webp","docs/site/static/static/images/logo-darwin.svg","docs/site/static/static/images/logo-freebsd.svg","docs/site/static/static/images/logo-linux.svg","docs/site/static/static/images/logo-netbsd.svg","docs/site/static/static/images/logo-openbsd.webp","docs/site/static/static/images/logo-windows.svg","docs/site/static/static/images/logo.svg","docs/site/static/static/images/logo.webp","docs/site/static/static/images/media.webp","docs/site/static/static/images/messengers.webp","docs/site/static/static/images/performance.webp","docs/site/static/static/images/privacy.webp","docs/site/static/static/images/s1.webp","docs/site/static/static/images/s2.svg","docs/site/static/static/images/s2.webp","docs/site/static/static/images/s3.webp","docs/site/static/static/images/s4.webp","docs/site/static/static/images/smtp.webp","docs/site/static/static/images/splash.webp","docs/site/static/static/images/templating.webp","docs/site/static/static/images/thumbnail.webp","docs/site/static/static/images/tx.webp","docs/site/static/static/style.css","docs/swagger/collections.yaml","frontend/.browserslistrc","frontend/.editorconfig","frontend/.env.sample","frontend/.eslintrc.js","frontend/.gitignore","frontend/README.md","frontend/babel.config.js","frontend/cypress.config.js","frontend/cypress/e2e/archive.cy.js","frontend/cypress/e2e/bounces.cy.js","frontend/cypress/e2e/campaigns.cy.js","frontend/cypress/e2e/dashboard.cy.js","frontend/cypress/e2e/forms.cy.js","frontend/cypress/e2e/import.cy.js","frontend/cypress/e2e/lists.cy.js","frontend/cypress/e2e/settings.cy.js","frontend/cypress/e2e/subscribers.cy.js","frontend/cypress/e2e/templates.cy.js","frontend/cypress/e2e/users.cy.js","frontend/cypress/fixtures/example.json","frontend/cypress/fixtures/logo.png","frontend/cypress/fixtures/subs-domain-blocklist.csv","frontend/cypress/fixtures/subs.csv","frontend/cypress/plugins/index.js","frontend/cypress/support/commands.js","frontend/cypress/support/e2e.js","frontend/cypress/support/reset.sh","frontend/email-builder/.eslintrc.cjs","frontend/email-builder/LICENSE","frontend/email-builder/README.md","frontend/email-builder/index.html","frontend/email-builder/package.json","frontend/email-builder/src/App/InspectorDrawer/ConfigurationPanel/index.tsx","frontend/email-builder/src/App/InspectorDrawer/ConfigurationPanel/input-panels/AvatarSidebarPanel.tsx","frontend/email-builder/src/App/InspectorDrawer/ConfigurationPanel/input-panels/ButtonSidebarPanel.tsx","frontend/email-builder/src/App/InspectorDrawer/ConfigurationPanel/input-panels/ColumnsContainerSidebarPanel.tsx","frontend/email-builder/src/App/InspectorDrawer/ConfigurationPanel/input-panels/ContainerSidebarPanel.tsx","frontend/email-builder/src/App/InspectorDrawer/ConfigurationPanel/input-panels/DividerSidebarPanel.tsx","frontend/email-builder/src/App/InspectorDrawer/ConfigurationPanel/input-panels/EmailLayoutSidebarPanel.tsx","frontend/email-builder/src/App/InspectorDrawer/ConfigurationPanel/input-panels/HeadingSidebarPanel.tsx","frontend/email-builder/src/App/InspectorDrawer/ConfigurationPanel/input-panels/HtmlSidebarPanel.tsx","frontend/email-builder/src/App/InspectorDrawer/ConfigurationPanel/input-panels/ImageSidebarPanel.tsx","frontend/email-builder/src/App/InspectorDrawer/ConfigurationPanel/input-panels/SpacerSidebarPanel.tsx","frontend/email-builder/src/App/InspectorDrawer/ConfigurationPanel/input-panels/TextSidebarPanel.tsx","frontend/email-builder/src/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/BaseSidebarPanel.tsx","frontend/email-builder/src/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/BooleanInput.tsx","frontend/email-builder/src/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/ColorInput/BaseColorInput.tsx","frontend/email-builder/src/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/ColorInput/Picker.tsx","frontend/email-builder/src/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/ColorInput/Swatch.tsx","frontend/email-builder/src/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/ColorInput/index.tsx","frontend/email-builder/src/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/ColumnWidthsInput.tsx","frontend/email-builder/src/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/FontFamily.tsx","frontend/email-builder/src/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/FontSizeInput.tsx","frontend/email-builder/src/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/FontWeightInput.tsx","frontend/email-builder/src/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/PaddingInput.tsx","frontend/email-builder/src/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/RadioGroupInput.tsx","frontend/email-builder/src/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/SliderInput.tsx","frontend/email-builder/src/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/TextAlignInput.tsx","frontend/email-builder/src/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/TextDimensionInput.tsx","frontend/email-builder/src/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/TextInput.tsx","frontend/email-builder/src/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/raw/RawSliderInput.tsx","frontend/email-builder/src/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/style-inputs/MultiStylePropertyPanel.tsx","frontend/email-builder/src/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/style-inputs/SingleStylePropertyPanel.tsx","frontend/email-builder/src/App/InspectorDrawer/StylesPanel.tsx","frontend/email-builder/src/App/InspectorDrawer/ToggleInspectorPanelButton.tsx","frontend/email-builder/src/App/InspectorDrawer/index.tsx","frontend/email-builder/src/App/TemplatePanel/DownloadJson/index.tsx","frontend/email-builder/src/App/TemplatePanel/HtmlPanel.tsx","frontend/email-builder/src/App/TemplatePanel/ImportJson/ImportJsonDialog.tsx","frontend/email-builder/src/App/TemplatePanel/ImportJson/index.tsx","frontend/email-builder/src/App/TemplatePanel/ImportJson/validateJsonStringValue.ts","frontend/email-builder/src/App/TemplatePanel/JsonPanel.tsx","frontend/email-builder/src/App/TemplatePanel/MainTabsGroup.tsx","frontend/email-builder/src/App/TemplatePanel/ShareButton.tsx","frontend/email-builder/src/App/TemplatePanel/helper/HighlightedCodePanel.tsx","frontend/email-builder/src/App/TemplatePanel/helper/highlighters.tsx","frontend/email-builder/src/App/TemplatePanel/index.tsx","frontend/email-builder/src/App/index.tsx","frontend/email-builder/src/documents/blocks/ColumnsContainer/ColumnsContainerEditor.tsx","frontend/email-builder/src/documents/blocks/ColumnsContainer/ColumnsContainerPropsSchema.ts","frontend/email-builder/src/documents/blocks/Container/ContainerEditor.tsx","frontend/email-builder/src/documents/blocks/Container/ContainerPropsSchema.tsx","frontend/email-builder/src/documents/blocks/EmailLayout/EmailLayoutEditor.tsx","frontend/email-builder/src/documents/blocks/EmailLayout/EmailLayoutPropsSchema.tsx","frontend/email-builder/src/documents/blocks/helpers/EditorChildrenIds/AddBlockMenu/BlockButton.tsx","frontend/email-builder/src/documents/blocks/helpers/EditorChildrenIds/AddBlockMenu/BlocksMenu.tsx","frontend/email-builder/src/documents/blocks/helpers/EditorChildrenIds/AddBlockMenu/DividerButton.tsx","frontend/email-builder/src/documents/blocks/helpers/EditorChildrenIds/AddBlockMenu/PlaceholderButton.tsx","frontend/email-builder/src/documents/blocks/helpers/EditorChildrenIds/AddBlockMenu/buttons.tsx","frontend/email-builder/src/documents/blocks/helpers/EditorChildrenIds/AddBlockMenu/index.tsx","frontend/email-builder/src/documents/blocks/helpers/EditorChildrenIds/index.tsx","frontend/email-builder/src/documents/blocks/helpers/TStyle.ts","frontend/email-builder/src/documents/blocks/helpers/block-wrappers/EditorBlockWrapper.tsx","frontend/email-builder/src/documents/blocks/helpers/block-wrappers/ReaderBlockWrapper.tsx","frontend/email-builder/src/documents/blocks/helpers/block-wrappers/TuneMenu.tsx","frontend/email-builder/src/documents/blocks/helpers/fontFamily.ts","frontend/email-builder/src/documents/blocks/helpers/zod.ts","frontend/email-builder/src/documents/editor/EditorBlock.tsx","frontend/email-builder/src/documents/editor/EditorContext.tsx","frontend/email-builder/src/documents/editor/core.tsx","frontend/email-builder/src/favicon/android-chrome-192x192.png","frontend/email-builder/src/favicon/android-chrome-512x512.png","frontend/email-builder/src/favicon/apple-touch-icon.png","frontend/email-builder/src/favicon/favicon-16x16.png","frontend/email-builder/src/favicon/favicon-32x32.png","frontend/email-builder/src/favicon/favicon.ico","frontend/email-builder/src/getConfiguration/index.tsx","frontend/email-builder/src/getConfiguration/sample/empty-email-message.ts","frontend/email-builder/src/main.tsx","frontend/email-builder/src/outlook.ts","frontend/email-builder/src/theme.ts","frontend/email-builder/src/utils.tsx","frontend/email-builder/src/vite-env.d.ts","frontend/email-builder/tsconfig.json","frontend/email-builder/vite.config.ts","frontend/email-builder/yarn.lock","frontend/fontello/config.json","frontend/index.html","frontend/jsconfig.json","frontend/package.json","frontend/public/static/favicon.png","frontend/public/static/tinymce/lang/cs.js","frontend/public/static/tinymce/lang/de.js","frontend/public/static/tinymce/lang/es_419.js","frontend/public/static/tinymce/lang/fr_FR.js","frontend/public/static/tinymce/lang/it_IT.js","frontend/public/static/tinymce/lang/pl.js","frontend/public/static/tinymce/lang/pt_BR.js","frontend/public/static/tinymce/lang/pt_PT.js","frontend/public/static/tinymce/lang/ro.js","frontend/public/static/tinymce/lang/tr.js","frontend/src/App.vue","frontend/src/api/index.js","frontend/src/assets/favicon.png","frontend/src/assets/fonts/Inter-Bold.woff2","frontend/src/assets/fonts/Inter-Regular.woff2","frontend/src/assets/icons/fontello.css","frontend/src/assets/icons/fontello.woff2","frontend/src/assets/logo.png","frontend/src/assets/logo.svg","frontend/src/assets/style.scss","frontend/src/components/BarChart.vue","frontend/src/components/CampaignPreview.vue","frontend/src/components/Chart.vue","frontend/src/components/CodeEditor.vue","frontend/src/components/CopyText.vue","frontend/src/components/Editor.vue","frontend/src/components/EmptyPlaceholder.vue","frontend/src/components/ListSelector.vue","frontend/src/components/LogView.vue","frontend/src/components/Navigation.vue","frontend/src/components/RichtextEditor.vue","frontend/src/components/SubscriberActivity.vue","frontend/src/components/VisualEditor.vue","frontend/src/components/editor-theme.js","frontend/src/components/editor.js","frontend/src/constants.js","frontend/src/main.js","frontend/src/router/index.js","frontend/src/store/index.js","frontend/src/utils.js","frontend/src/views/404.vue","frontend/src/views/About.vue","frontend/src/views/Bounces.vue","frontend/src/views/Campaign.vue","frontend/src/views/CampaignAnalytics.vue","frontend/src/views/Campaigns.vue","frontend/src/views/Dashboard.vue","frontend/src/views/Forms.vue","frontend/src/views/Import.vue","frontend/src/views/ListForm.vue","frontend/src/views/Lists.vue","frontend/src/views/Logs.vue","frontend/src/views/Maintenance.vue","frontend/src/views/Media.vue","frontend/src/views/RoleForm.vue","frontend/src/views/Roles.vue","frontend/src/views/Settings.vue","frontend/src/views/SubscriberBulkList.vue","frontend/src/views/SubscriberForm.vue","frontend/src/views/Subscribers.vue","frontend/src/views/TemplateForm.vue","frontend/src/views/Templates.vue","frontend/src/views/UserForm.vue","frontend/src/views/UserProfile.vue","frontend/src/views/Users.vue","frontend/src/views/settings/appearance.vue","frontend/src/views/settings/bounces.vue","frontend/src/views/settings/general.vue","frontend/src/views/settings/media.vue","frontend/src/views/settings/messengers.vue","frontend/src/views/settings/performance.vue","frontend/src/views/settings/privacy.vue","frontend/src/views/settings/security.vue","frontend/src/views/settings/smtp.vue","frontend/vite.config.js","frontend/yarn.lock","go.mod","go.sum","i18n/ar.json","i18n/bg.json","i18n/ca.json","i18n/cs.json","i18n/cy.json","i18n/da.json","i18n/de.json","i18n/el.json","i18n/en.json","i18n/eo.json","i18n/es.json","i18n/fi.json","i18n/fr-CA.json","i18n/fr.json","i18n/he.json","i18n/hu.json","i18n/id.json","i18n/it.json","i18n/ja.json","i18n/ko.json","i18n/ml.json","i18n/nl.json","i18n/no.json","i18n/pl.json","i18n/pt-BR.json","i18n/pt.json","i18n/ro.json","i18n/ru.json","i18n/sk.json","i18n/sl.json","i18n/sv.json","i18n/tr.json","i18n/uk.json","i18n/vi.json","i18n/zh-CN.json","i18n/zh-TW.json","internal/auth/auth.go","internal/auth/models.go","internal/bounce/bounce.go","internal/bounce/mailbox/opt.go","internal/bounce/mailbox/pop.go","internal/bounce/webhooks/azure.go","internal/bounce/webhooks/forwardemail.go","internal/bounce/webhooks/lettermint.go","internal/bounce/webhooks/postmark.go","internal/bounce/webhooks/sendgrid.go","internal/bounce/webhooks/ses.go","internal/buflog/buflog.go","internal/captcha/captcha.go","internal/core/bounces.go"],"storefront":"/r/knadh","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/knadh/listmonk/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}