{"id":13819484,"url":"https://github.com/yongfook/zipsell","last_synced_at":"2026-01-27T11:36:48.437Z","repository":{"id":47870190,"uuid":"147169380","full_name":"yongfook/zipsell","owner":"yongfook","description":"A free open source platform for selling digital downloads such as ebooks","archived":false,"fork":false,"pushed_at":"2018-12-01T22:28:18.000Z","size":213,"stargazers_count":574,"open_issues_count":10,"forks_count":107,"subscribers_count":22,"default_branch":"master","last_synced_at":"2024-11-19T18:48:42.072Z","etag":null,"topics":["digital-assets","digital-products","downloads","ebook-downloader","ebook-manager","ebooks","ecommerce-platform"],"latest_commit_sha":null,"homepage":"https://www.zipsell.org","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/yongfook.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-09-03T07:44:02.000Z","updated_at":"2024-10-30T10:08:09.000Z","dependencies_parsed_at":"2022-09-21T11:52:53.732Z","dependency_job_id":null,"html_url":"https://github.com/yongfook/zipsell","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yongfook%2Fzipsell","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yongfook%2Fzipsell/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yongfook%2Fzipsell/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yongfook%2Fzipsell/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yongfook","download_url":"https://codeload.github.com/yongfook/zipsell/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254470304,"owners_count":22076566,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["digital-assets","digital-products","downloads","ebook-downloader","ebook-manager","ebooks","ecommerce-platform"],"created_at":"2024-08-04T08:00:49.003Z","updated_at":"2026-01-27T11:36:48.409Z","avatar_url":"https://github.com/yongfook.png","language":"Ruby","funding_links":[],"categories":["Happy Exploring 🤘"],"sub_categories":[],"readme":"![Zipsell intro](https://www.zipsell.org/images/PH/Poster1.png)\n\n# Zipsell\n\nZipsell helps you set up an online store for selling digital products such as ebooks, music, videos, source code etc. \n\nZipsell handles payment processing via stripe and sends customers secure expiring Amazon S3 links to the files they have purchased. Since it is self-hosted, you receive payments directly and avoid paying commissions to 3rd party marketplaces.\n\nZipsell is built with Ruby on Rails.\n\nDemo site - http://demo.zipsell.org\n\n## Getting Started\n\nThese instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.\n\n### Prerequisites\n\nZipsell is a Ruby on Rails app. These instructions assume you have run a rails app on your local machine before.\n\n### Installing\n\nClone the project into a local folder and run the included setup file:\n\n```\ngit clone https://github.com/yongfook/zipsell\ncd zipsell\n./bin/setup\n```\n\n### Configuration\n\nDuring local setup above, a git-ignored config file is generated at `config/application.yml`.\n\nPopulate this with your local and production config for Amazon AWS, Stripe etc. You can have environment-specific values for local, test and production. `ENV` config is handled by the [Figaro](https://github.com/laserlemon/figaro) gem.\n\nThe config template looks like this:\n\n```\n#general - all required\nshop_name: My Shop\nshop_domain: localhost:3000\nshop_email_support: test@localhost.com\nshop_email_noreply: noreply@localhost.com\n\n#email - all required, for email delivery in production\nSMTP_host: \nSMTP_port: \nSMTP_username: \nSMTP_password: \n\n#payments - all required, for processing payments\nstripe_api_key: \nstripe_publishable_key: \n\n#file storage - all required, for storing files securely\nAWS_REGION: \nAWS_BUCKET: \nAWS_ACCESS_KEY_ID: \nAWS_SECRET_ACCESS_KEY: \n\n#file management - all required\nfile_expiry_hours: \"24\"\nfile_max_downloads: \"10\"\n\n#cdn host - optional, for faster static asset serving in production\ncdn_host_assets: \ncdn_host_s3_bucket: \n\n#analytics - optional, in the format UA-XXXXXXXX-XX\ngoogle_analytics_id:\n\n#\n# production:\n#   stripe_api_key: \n#   stripe_publishable_key: \n```\n\nThese should be self explanatory except for the optional `cdn host` section.\n\n**cdn_host_assets:** This is the optional Rails asset pipeline cdn host. Use this if you want to serve css / js faster. Include the protocol you want to use e.g. `https://myapp.cdn.com`\n\n**cdn_host_s3_bucket:** This is the optional Amazon Cloudfront cdn host for your S3 bucket. Use this if you want to serve uploaded image files faster. Do not include the protocol, use only the hostname e.g. `randomname.cloudfront.net`\n\n### Running locally\n\nStart your rails server:\n\n```rails s```\n\nYour shopfront is at:\n\n```http://0.0.0.0:3000```\n\nYour admin dashboard is at:\n\n```http://0.0.0.0:3000/admin```\n\n## Deployment on Heroku\n\nTo deploy to heroku for the first time:\n\n```\nheroku create\ngit push heroku master\nheroku run rails db:migrate\nfigaro heroku:set -e production\n```\n\nThe last line updates the remote heroku server with the `ENV` config in `config/application.yml`. \n\nYou will need to run this command again if you change your production config.\n\n## Contributing\n\nIn general, we follow the \"fork-and-pull\" Git workflow.\n\n 1. **Fork** the repo on GitHub\n 2. **Clone** the project to your own machine\n 3. **Commit** changes to your own branch\n 4. **Push** your work back up to your fork\n 5. Submit a **Pull request** so that we can review your changes\n\nNOTE: Be sure to merge the latest from \"upstream\" before making a pull request!\n\n## Built With\n\n- [Amazon S3](https://aws.amazon.com/s3/) is used as the file store. All downloadable files have non-public access rights and download links are securely signed with a configurable expiry time.\n- [Bulma](https://bulma.io) is used as the css framework.\n- [Figaro](https://github.com/laserlemon/figaro) is used to set production configuration without commiting files or storing sensitive information in databases.\n- [Heroku](https://heroku.com) is used as the production environment in my readme, although you are free to deploy it anywhere else.\n- [Paperclip](https://github.com/thoughtbot/paperclip) is used for file attachments. I purposely removed Active Storage from the app as it is currently not suitable for serving files via CDN. Zipsell needs flexibility - image previews can be served from a CDN while private, downloadable files are served directly from the S3 bucket.\n- [Ruby on Rails](https://rubyonrails.org) is used as the web application framework.\n- [Stripe](https://stripe.com/) is used as the payment processor. You use your own Stripe account with Zipsell and all payments go directly to you.\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyongfook%2Fzipsell","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyongfook%2Fzipsell","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyongfook%2Fzipsell/lists"}