{"id":37319335,"url":"https://github.com/abishekmuthian/open-payment-host","last_synced_at":"2026-01-16T03:15:57.512Z","repository":{"id":104435934,"uuid":"570260267","full_name":"abishekmuthian/open-payment-host","owner":"abishekmuthian","description":"Sell what you want without paying double commissions. Self hosted alternative for Gumroad, Buy Me a Coffee, Ko-fi etc.","archived":false,"fork":false,"pushed_at":"2026-01-11T16:49:14.000Z","size":43706,"stargazers_count":215,"open_issues_count":0,"forks_count":10,"subscribers_count":4,"default_branch":"main","last_synced_at":"2026-01-11T19:46:18.968Z","etag":null,"topics":["buymeacoffee","digital-payments","file-hosting","gumroad","gumroad-alternative","kofi","money","payment-gateway","payment-host","payment-integration","payment-processing","payment-service","paymentmethods","payments","paypal","razorpay","stripe"],"latest_commit_sha":null,"homepage":"https://openpaymenthost.com","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/abishekmuthian.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"abishekmuthian"}},"created_at":"2022-11-24T18:10:15.000Z","updated_at":"2026-01-11T16:28:45.000Z","dependencies_parsed_at":"2024-06-21T19:14:25.745Z","dependency_job_id":"3369aaa5-5c2e-4b57-ae06-bc91c3d04909","html_url":"https://github.com/abishekmuthian/open-payment-host","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/abishekmuthian/open-payment-host","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abishekmuthian%2Fopen-payment-host","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abishekmuthian%2Fopen-payment-host/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abishekmuthian%2Fopen-payment-host/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abishekmuthian%2Fopen-payment-host/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/abishekmuthian","download_url":"https://codeload.github.com/abishekmuthian/open-payment-host/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abishekmuthian%2Fopen-payment-host/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28477069,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-16T03:13:13.607Z","status":"ssl_error","status_checked_at":"2026-01-16T03:11:47.863Z","response_time":107,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["buymeacoffee","digital-payments","file-hosting","gumroad","gumroad-alternative","kofi","money","payment-gateway","payment-host","payment-integration","payment-processing","payment-service","paymentmethods","payments","paypal","razorpay","stripe"],"created_at":"2026-01-16T03:15:56.862Z","updated_at":"2026-01-16T03:15:57.501Z","avatar_url":"https://github.com/abishekmuthian.png","language":"Go","funding_links":["https://github.com/sponsors/abishekmuthian","https://paypal.com","https://www.sandbox.paypal.com","https://www.paypal.com","https://api-m.sandbox.paypal.com","https://api-m.paypal.com","https://developer.paypal.com"],"categories":[],"sub_categories":[],"readme":"![](demo/oph-linkedin.png)\n\n# Open Payment Host  \n\n![Version 0.3.6](https://badgen.net/static/version/0.3.6/blue)\n[![Go](https://img.shields.io/badge/Go-%2300ADD8.svg?\u0026logo=go\u0026logoColor=white)](#)\n[![HTMX](https://img.shields.io/badge/HTMX-36C?logo=htmx\u0026logoColor=fff)](#)\n[![hyperscript](https://img.shields.io/badge/%2F%2F%2F__hyperscript-white?style=flat)](#)\n[![TailwindCSS](https://img.shields.io/badge/Tailwind%20CSS-%2338B2AC.svg?logo=tailwind-css\u0026logoColor=white)](#)\n[![SQLite](https://img.shields.io/badge/SQLite-%2307405e.svg?logo=sqlite\u0026logoColor=white)](#)\n\n\n\nSell Subscriptions, Newsletters, Digital Files without paying commissions.\n\n\u003cp align=\"center\"\u003e\n    \u003cimg src=\"./demo/Square/4.post.gif\"\u003e\n\u003c/p\u003e\n\n## What\n\nOpen Payment Host is an easy to run self-hosted, minimalist payments host through which we can easily sell our digital items without paying double commissions while having total control over our sales and data.\n\n## Why\n\nSelling digital items on web as an indie requires using platforms where we have to pay double commissions(to the platform and the payment gateway) and our content is forever locked within those platforms.\n\n## Who\n\n* Those who are looking to self-host an alternative for Gumroad, Buy Me a Coffee, Ko-fi etc.\n\n* Those who churn out lot of projects and don't want to integrate payment gateway every time.\n\n* Those who want to use multiple payment gateways for different countries e.g. for parity pricing or for redundancy.\n\n## How\n\nOpen Payment Host is a minimalist yet highly performant Go web application with innovative features which helps indies self-host and sell digital items with little effort.\n\n## One Click Deployment\n\n[![Deploy on Railway](https://railway.com/button.svg)](https://railway.com/template/qOF1Ut?referralCode=Bz3_oI)\n\n\u003c!-- ## Video Demo\n\n[![Video Demo](/demo/Stripe/thumbnail-site.png)](https://www.youtube.com/watch?v=vQcLr-NgqIU)\nClicking the above image would open the video in YouTube. --\u003e\n\n\u003c!-- ## Demo\n\n[https://abishek.openpaymenthost.com](https://abishek.openpaymenthost.com) --\u003e\n\n## Features\n- WYSIWYG editor to create beautiful product pages.\n- One Time and Subscription payments support.\n- Stripe support, Just add the price id for the product and rest is done automatically.\n- Paypal support, Just add the plan id for the product and rest is done automatically \u003csup\u003enew\u003c/sup\u003e.\n- Razorpay support, Just add the plan id for the product and rest is done automatically \u003csup\u003enew\u003c/sup\u003e.\n- Square support, Just add the amount for the product and rest is done automatically.\n- Customers can buy without logging in, Increases conversion.\n- Multi-country pricing, Price changes automatically according to the user's location resulting in better conversion.\n- Light and Dark theme.\n- Mailchimp support, Customers are automatically added to a mailchimp list; Useful for sending newsletters.\n- File attachment support(images) for the product posts.\n- S3 support for delivering digital files via automatic pre-signed URL.\n- Subscriber count for the products.\n- Automatic SSL and other security features for production.\n- Automatic payment gateway router based on country\u003csup\u003enew\u003c/sup\u003e\n- API \u0026 Webhook \u003csup\u003eexperimental\u003c/sup\u003e.\n\n## Production Demo\n\n[https://payments.abishekmuthian.com](https://payments.abishekmuthian.com)\n\n## WIP\n\nThis is a work in progress project, although I put lot of effort in ensuring security and stability of the platform users should be aware of possible unknown bugs. That said, I use Open Payment Host as payments host for my own projects.\n\n## Immediate Goals\n- [x] Product pages\n- [x] Stripe integration\n- [x] Square integration\n- [x] Paypal integration\n- [x] Razorpay integration\n- [x] Payment router\n- [x] File download\n- [ ] Documentation website\n- [ ] Accessibility\n\n## Long Term Goals\n- [ ] Paddle integration\n- [ ] PayU integration\n- [ ] Cashfree integration\n- [ ] Direct banking API integration\n- [ ] Community features\n- [ ] Localisation\n\n\n\nIf you would like to help me achieve these goals, consider sponsoring me\n\n[![](https://img.shields.io/static/v1?label=Sponsor\u0026message=%E2%9D%A4\u0026logo=GitHub\u0026color=%23fe8e86)](https://github.com/sponsors/abishekmuthian)\n\n## Screenshots\n\n### Home\n\n![Hope page of OPH](/demo/Square/1.a.home.png)\n\n### WYSIWYG editor\n\n![WYSIWYG editor](/demo/Stripe/WYSIWYG-editor.png)\n\n### Buy without login\n\n#### Square\n\n![Billing](/demo/Square/5.billing_details_80_zoom.png)\n\n### No credit card data is stored locally\n\n#### Stripe\n\n![Buy button](/demo/Stripe/buy.gif)\n\n#### Square\n\n![Square web sdk](/demo/Square/6.square_web_sdk.png)\n\n### Strong customer authentication (3D-Secure, SCA) support\n\n![3D-Secure](/demo/Square/7.3D_secure.png)\n\n### File delivery after payment\n\n#### Stripe\n\n![File delivery after payment after stripe payment](/demo/Stripe/file-delivery.gif)\n\n#### Square\n\n![File delivery after payment after square payment](/demo/Square/8.File_download_delivery.png)\n\n### Automatic payment gateway router\n\n#### Paypal\nhttps://github.com/user-attachments/assets/41c0d989-4a4f-43e4-8b54-f7938be3dda0\n\n#### Razorpay\nhttps://github.com/user-attachments/assets/86ea6d40-37cf-42f9-81f2-590671baa88c\n\n## Usage\n\n### Requirements\n\n1. [Stripe](https://stripe.com/) or [Square](https://squareup.com) or [Paypal](https://paypal.com) or [Razorpay](https://razorpoay.com) account for payment gateway.\n\n2. [Cloudflare](https://www.cloudflare.com/) account for turnstile captcha.\n\n3. [Mailchimp](https://mailchimp.com/) account for adding subscribers to the list.\n\nNote: Open Payment Host can be tested without fulfilling above requirements, But payments and adding subscribers to the list wouldn't work.\n\n### Docker\n\nThe latest image is available on DockerHub at [`abishekmuthian/open-payment-host:latest`](https://hub.docker.com/layers/abishekmuthian/open-payment-host/latest).\n\n### Demo Setup\n\n```bash\nmkdir oph-demo \u0026\u0026 cd oph-demo\nsh -c \"$(curl -fsSL https://raw.githubusercontent.com/abishekmuthian/open-payment-host/main/samples/oph-demo/install-demo.sh)\"\n```\n\nVisit `http://localhost:3000`.\n\nDemo version prints more detailed level of errors if any, DO NOT use this demo setup in production.\n\n#### Login\n\nThe default admin email id is `admin@openpaymenthost.com` and the password is `OpenPaymentHost`. You'll be asked to reset the password after login for security reasons. That password is hashed and stored.\n\nYou'll be logged out after changing password automatically to login with the new credentials.\n\nAdmin email id and default admin password can be changed in the config file (explained below) after the first run. Each time the password is reset in the config file, The password needs to be changed again once logged in for security.\n\n### Production Setup\n\nIt's recommended to try the demo application first before using the production application. The production application requires a registered domain and special config variables for SSL as detailed in the configuration section.\n\n```bash\nmkdir oph-production \u0026\u0026 cd oph-production\nsh -c \"$(curl -fsSL https://raw.githubusercontent.com/abishekmuthian/open-payment-host/main/samples/oph-production/install-production.sh)\"\n```\n\nAfter the container has started successfully, Stop the container, Set the required production configuration and re-run the container.\n\n### Configuration\n\nConfig file `fragmenta.json` is located in the `secrets` folder. It is generated automatically during the first run, After editing the config file the application needs to be restarted for the new configuration to take effect.\n\n`fragmenta.json` contains configuration for both development and production. The production configuration is loaded when the environment variable `FRAG_ENV=production` is set.\n\nNote: Environment variable for production is set automatically when using the docker production setup.\n\nUser configurable values are included in the table below.\n\n| Key                                   | Description                                                                                     | Value                                                                               |\n| :------------------------------------ | :---------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------- |\n| admin_email                           | Email id of the administrator.                                                                  | Default: admin@openpaymenthost.com                                                  |\n| admin_default_password                | Default password of the administrator, Would be forced to changed after login.                  | Default: OpenPaymentHost                                                            |\n| reset_admin                           | Reset the email and password of the admin during the next run.                                  | yes (or) no                                                                         |\n| domain                                | Website domain name for the application.                                                        | Dev: localhost, Prod: example                                                       |\n| port                                  | Port of the application.                                                                        | Dev: 3000, Prod: 443 (SSL)                                                          |\n| root_url                              | FQDN for the application with protocol and port.                                                | Dev: http://localhost:3000, Prod: https://example.com                               |\n| autocert_domains                      | Comma separated domains for SSL certificates.                                                   | Demo: NA, Prod: www.example.com, example.com                                        |\n| autocert_email                        | email id for SSL certificate related notifications.                                             | Demo: NA, Prod: admin@example.com                                                   |\n| autocert_ssl                          | Enable or Disable automatic ssl                                                                 | Demo: NA, Prod: yes/no                                                              |\n| name                                  | Name of the website.                                                                            | Default: Open Payment Host                                                          |\n| meta_title                            | Title of the website.                                                                           | Default : Sell what you want without paying commissions                             |\n| meta_desc                             | Description of the website.                                                                     | Default: Sell Subscriptions, Newsletters, Digital Files without paying commissions. |\n| meta_keywords                         | Keywords for the website.                                                                       | Default: payments,subscription,projects,products                                    |\n| meta_image                            | URL for the featured image for the website.                                                     | Default: /assets/images/app/oph_featured_image.png                                  |\n| meta_url                              | Meta URL for the page when its not generated automatically.                                     | Dev: http://localhost:3000, Prod: https://example.com                               |\n| square                                | Enable the square payment gateway, When enabled all other square credentials are mandatory.     | Dev/Prod : yes,no                                                                   |\n| square_access_token                   | Square access token for accessing your square account.                                          | Dev: Sandbox access token, Prod: Production access token                            |\n| square_app_id                         | Square app id to identify your application.                                                     | Dev: sandbox-..., Production: production app id                                     |\n| square_location_id                    | Square location id for the account                                                              | Dev: Sandbox location id from test account, Prod: location id from the main account |\n| square_notification_url               | Square notification url for the webhook.                                                        | Dev:Sandbox webhook URL, Prod: Production webhook URL                               |\n| square_signature_key                  | Square signature for webhook authentication                                                     | Dev: Sandbox webhook signature, Prod: Production webhook signature                  |\n| square_sandbox_source_id              | Square sandbox source id for credit card                                                        | Dev: cnon:card-nonce-ok, Prod:\"\"                                                    |\n| square_domain                         | Square API domain                                                                               | Dev: https://connect.squareupsandbox.com/v2, Prod: https://connect.squareup.com/v2  |\n| s3_access_key                         | S3 compatible access key                                                                        | Dev: NA,Prod: NA                                                                    |\n| s3_secret_key                         | S3 compatible secret key                                                                        | Dev: NA, Prod: NA                                                                   |\n| stripe                                | Enable the stripe payment gateway, When enabled all other stripe credentials are mandatory.     | Dev/Prod : yes, no                                                                  |\n| stripe_key                            | Stripe developer key.                                                                           | Dev: pk*test*..., Prod: pk*live*...\\*\\*\\*\\*                                         |\n| stripe_secret                         | Stripe developer secret key.                                                                    | Dev: sk*test*..., Prod: sk*live*...                                                 |\n| stripe_webhook_secret                 | Stripe webhook signing secret                                                                   | Dev: whsec_xxx, Prod: whsec_xxx                                                     |\n| stripe_tax_rate\\_[ISO 3166-1 alpha-2] | Stripe tax id for a country represented by [ ISO 3166-1 alpha-2] code eg. stripe_tax_rate_US    | Dev: txr*..., Prod: txr*...                                                         |\n| stripe_callback_domain                | Root URL for callback after Stripe event.                                                       | Dev: [Use tunnel like ngrok], Prod: [Use root_url]                                  |\n| subscription_client_country           | Test country for testing multi-country pricing.                                                 | Dev: US, IN, FR etc. Prod: NA                                                       |\n| mailchimp_token                       | Mailchimp API Key.                                                                              | e.g. ...-us12                                                                       |\n| turnstile_secret_key                  | Cloudflare turnstile secret key for captcha.                                                    | Dev: 1x00000000000000000000AA, Prod: 0x...                                          |\n| turnstile_site_key                    | Cloudflare turnstile key for captcha.                                                           | Dev: 1x0000000000000000000000000000000AA, Prod: 0x...                               |\n| paypal                                | Enable the paypal payment gateway, When enabled all other paypal credentials are mandatory.     | Dev/Prod : yes,no                                                                   |\n| paypal_domain                         | sandbox or production domain domain                                                             | Dev: https://www.sandbox.paypal.com , Prod: https://www.paypal.com                  |\n| paypal_api_domain                     | sandbox or production API domain                                                                | Dev: https://api-m.sandbox.paypal.com , Prod: https://api-m.paypal.com              |\n| paypal_client_id                      | Paypal client ID                                                                                | Dev: XXX, Prod: XXX                                                                 |\n| paypal_client_secret                  | Paypal client secret                                                                            | Dev: XXX, Prod: XXX                                                                 |\n| paypal_webhook_id                     | Paypal webhook ID                                                                               | Dev: XXX, Prod: XXX                                                                 |\n| razorpay                              | Enable the razorpay payment gateway, when enabled all other razorpay credentials are mandatory. | Dev/Prod: yes                                                                       |\n| razorpay_key_secret                   | Razorpay key secret                                                                             | Dev: XXX, Prod: XXX                                                                 |\n| razorpay_webhook_secret               | Razorpay webhook secret                                                                         | Dev: XXX, Prod: XXX                                                                 |\n| whatsapp_number                       | Whatsapp number for customer support                                                            | Phone number without +,space or dash e.g. 15551234567                               |\n\n\n\n### Stripe Webhook Setup\n\nWebhook needs to be setup at [Stripe](https://stripe.com) Developer's section for receiving subscription details post payment.\n\nSet the webhook to `root_url/subscriptions/stripe-webhook` where the root_url is defined in the configuration above. To test the webhooks in the local environment, Use a tunnel like [ngrok](https://ngrok.com/).\n\nSet the following events to send:\n\n1. `checkout.session.completed`\n2. `payment_method.attached`\n3. `invoice.paid`\n4. `invoice.payment_failed`\n5. `customer.subscription.deleted`\n\n### Square Webhook Setup\n\nWebhook needs to be setup at [Square](https://developer.squareup.com) Developer's section for receiving subscription details post payment.\n\nSet the webhook to `root_url/subscriptions/square-webhook` where the root_url is defined in the configuration above. To test the webhooks in the local environment, Use a tunnel like [ngrok](https://ngrok.com/).\n\nSet the following events to send:\n\n1. `subscription.created `\n2. `subscription.updated `\n3. `payment.create`\n4. `payment.updated`\n\n### Paypal Webhook Setup \n\nWebhook needs to be setup at [Paypal](https://developer.paypal.com) Developer's section for receiving subscription details post payment.\n\nSet the webhook to `root_url/subscriptions/paypal-webhook` where the root_url is defined in the configuration above. To test the webhooks in the local environment, Use a tunnel like [ngrok](https://ngrok.com/).\n\nSet the following events to send:\n\n1. `CHECKOUT.ORDER.APPROVED`\n2. `CAPTURE.REFUNDED`\n3. `BILLING.SUBSCRIPTION.ACTIVATED`\n4. `BILLING.SUBSCRIPTION.CREATED`\n5. `BILLING.SUBSCRIPTION.UPDATED`\n6. `BILLING.SUBSCRIPTION.EXPIRED`\n7. `BILLING.SUBSCRIPTION.CANCELLED`\n8. `BILLING.SUBSCRIPTION.SUSPENDED`\n9. `BILLING.SUBSCRIPTION.PAYMENT.FAILED`\n\n### Razorpay Webhook Setup\n\nWebhook needs to be setup at [Razorpay](https://dashboard.razorpay.com/app/website-app-settings/webhooks) Developer's section for receiving subscription details post payment.\n\nSet the webhook to `root_url/subscriptions/razorpay-webhook` where the root_url is defined in the configuration above. To test the webhooks in the local environment, Use a tunnel like [ngrok](https://ngrok.com/).\n\nSet the following events to send:\n1. `order.paid`\n2. `subscription.authenticated`\n3. `subscription.paused`\n4. `subscription.resumed`\n5. `subscription.activated`\n6. `subscription.pending`\n7. `subscription.halted`\n8. `subscription.charged`\n9. `subscription.cancelled`\n10. `subscription.completed`\n11. `subscription.updated`\n\n### API and Webhook \u003csup\u003eExperimental\u003c/sup\u003e\n\u003e Note: API features are currently supported for Paypal and Razorpay payment gateways only. If you require support for other PG, kindly open a issue.\n\nYou can call Open Payment Host for just payments from another website. Once payment is completed the user is redirected back to your website and the payment related data is sent to the webhook mentioned in the product page.\n\n#### Redirect to the OPH product page\n\n`https://\u003cyour-oph-domain-for-the-product\u003e?custom_id=\u003ccustom-id\u003e\u0026redirect_uri=\u003credirect-uri\u003e`\n\n#### URL Parameters\n`custom_id` : custom id e.g. user id.\n\n`redirect_uri` : redirect URI e.g. success page.\n\n#### Webhook Callback Request\n\n#### Request Header\n\n`X-OPH-Signature` : Signature generated using `SHA-256` with the `webhook secret` as key given in the product page. \n\n*Note: Generate signature for the webhook request body and compare it with the signature in the header to verify that they are from your Open Payment Host.*\n\n#### Request Body\n\n```\n{\n    \"subscription_id\": \"xxxx\",\n    \"custom_id\": \"xxxx\",\n    \"status\": \"active\"\n}\n```\n#### Request Parameters\n\n`subscription_id` : subscription id of the payment. Store it to track the subscription of the user.\n\n`custom_id` : e.g. user id to identify the user and enable subscription features.\n\n`status` : `active` when the subscription is created and `cancelled` when the subscription is cancelled.\n\n#### Cancel Subscription\n\nTo cancel the subscription, make a `GET` request.\n\n`https://\u003cyour-oph-domain\u003e/subscriptions/cancel?subscription_id=\u003csubscription_id\u003e\u0026redirect_uri=\u003cyour-application-domain\u003e\u0026custom_id=\u003ccustom-id\u003e`\n\n#### URL Parameters\n\n`subscription_id` : subscription id of the payment.\n\n`redirect_uri` : redirect URI e.g. cancellation success page.\n\n`custom_id` : custom id e.g. user id.\n\n#### Webhook Callback Request\n\nAfter successful cancellation, OPH will send a webhook POST request to your configured webhook URL.\n\n#### Request Header\n\n`X-OPH-Signature` : HMAC SHA256 signature of the request body using your webhook secret.\n\n#### Request Body\n\nThe request body is JSON with the following parameters:\n\n```json\n{\n  \"subscription_id\": \"sub_xxxxx\",\n  \"custom_id\": \"your-user-id\",\n  \"status\": \"cancelled\",\n  \"email\": \"\"\n}\n```\n\n#### Request Parameters\n\n`subscription_id` : The subscription ID that was cancelled.\n\n`custom_id` : The custom ID (user ID) associated with the subscription.\n\n`status` : Always \"cancelled\" for cancellation webhooks.\n\n`email` : Email address (may be empty for cancellations).\n\n\n## Developer\n\n### Build Open Payment Host\n\nTo build the application yourself,\n\n```\n$ git clone https://github.com/abishekmuthian/open-payment-host\n$ cd open-payment-host\n$ go build open-payment-host\n```\n\nThere are `docker-compose` , `Dockerfile` files in the root of the project to build a docker image.\n\n### Tailwind\n\nOpen Payment Host uses Tailwind and Daisy UI for its UI.\n\nCompile Tailwind using the following command,\n\n```\nnpx @tailwindcss/cli -i ./tailwind/tailwind.css -o ./src/app/assets/styles/app.css --watch\n```\n\n### License\n\nCopyright (C) 2025 Abishek Muthian (Open Payment Host)\n\nThis program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.\n\nThis program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.\n\nYou should have received a copy of the GNU Affero General Public License along with this program. If not, see https://www.gnu.org/licenses/.\n\n### Licenses for open-source libraries used in this project\n\nFragmenta: https://github.com/fragmenta licensed under [The MIT License](https://github.com/andybrewer/mvp/blob/master/LICENSE).\n\ntailwindcss: https://github.com/tailwindlabs/tailwindcss licensed under [The MIT License](https://github.com/tailwindlabs/tailwindcss/blob/master/LICENSE).\n\ndaisyui: https://github.com/saadeghi/daisyui licensed under [The MIT License](https://github.com/saadeghi/daisyui/blob/master/LICENSE).\n\ntrix: https://github.com/basecamp/trix licensed under [The MIT License](https://github.com/basecamp/trix/blob/main/LICENSE).\n\nhtmx: https://github.com/bigskysoftware/htmx licensed under [Zero-Clause BSD](https://github.com/bigskysoftware/htmx/blob/master/LICENSE).\n\nhyperscript: https://github.com/bigskysoftware/_hyperscript licensed under [Zero-Clause BSD](https://github.com/bigskysoftware/_hyperscript/blob/master/LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fabishekmuthian%2Fopen-payment-host","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fabishekmuthian%2Fopen-payment-host","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fabishekmuthian%2Fopen-payment-host/lists"}