Launchr is an open source SaaS starter kit, based on Django.

Overview

Launchr

Launchr

Status codecov GitHub Issues GitHub Pull Requests License


Launchr is an open source SaaS starter kit.

About

Launchr is a fully-equipped starter template, ready to start a SaaS web app. It implements the whole payment flow + subscription management and comes with user authentication & registration and a ton of other features.

Getting Started

If you want to try out Launchr, follow the examples below.

Prerequisites

Install Docker and Docker Compose.

Installing

To create a new project, open up a terminal and clone Launchr to your current working directory:

git clone https://github.com/jayfk/launchr.git

Move the repository you just cloned to the one your are going to use for your project:

mv launchr project_name

Switch to your newly created project directory and start the stack:

cd project_name
docker-compose up

Once Docker is finished downloading and building, open up a second terminal and run the initial migrations for the project:

docker-compose run app python manage.py migrate

You should now be able to reach your local development server by visiting http://localhost:8000/.

Where to go from here?

One of the first things you want to do is to set up payments via Stripe.

Documentation

Click here to find the Documentation.

Comments
  • How to enter Django admin panel?

    How to enter Django admin panel?

    Hi! This is a great template.

    I'm trying to login to the Django admin panel at http://0.0.0.0:8000/admin/. I tried to create an admin user with this comand, but after creating it I still can't login.

    docker-compose run app python manage.py createsuperuser

    opened by JaviBonilla 1
  • InitializationError: docker-credential-gcloud not installed or not available in PATH

    InitializationError: docker-credential-gcloud not installed or not available in PATH

    Hi!

    This error shows up when I run docker-compose up

    Building app
    Traceback (most recent call last):
      File "/usr/bin/docker-compose", line 11, in <module>
        load_entry_point('docker-compose==1.22.0', 'console_scripts', 'docker-compose')()
      File "/usr/lib/python3.7/site-packages/compose/cli/main.py", line 71, in main
        command()
      File "/usr/lib/python3.7/site-packages/compose/cli/main.py", line 127, in perform_command
        handler(command, command_options)
      File "/usr/lib/python3.7/site-packages/compose/cli/main.py", line 1052, in up
        to_attach = up(False)
      File "/usr/lib/python3.7/site-packages/compose/cli/main.py", line 1048, in up
        silent=options.get('--quiet-pull'),
      File "/usr/lib/python3.7/site-packages/compose/project.py", line 471, in up
        svc.ensure_image_exists(do_build=do_build, silent=silent)
      File "/usr/lib/python3.7/site-packages/compose/service.py", line 352, in ensure_image_exists
        self.build()
      File "/usr/lib/python3.7/site-packages/compose/service.py", line 1067, in build
        platform=self.platform,
      File "/usr/lib/python3.7/site-packages/docker/api/build.py", line 251, in build
        self._set_auth_headers(headers)
      File "/usr/lib/python3.7/site-packages/docker/api/build.py", line 313, in _set_auth_headers
        credstore_env=self.credstore_env
      File "/usr/lib/python3.7/site-packages/docker/auth.py", line 96, in resolve_authconfig
        authconfig, registry, store_name, env=credstore_env
      File "/usr/lib/python3.7/site-packages/docker/auth.py", line 127, in _resolve_authconfig_credstore
        store = dockerpycreds.Store(credstore_name, environment=env)
      File "/usr/lib/python3.7/site-packages/dockerpycreds/store.py", line 25, in __init__
        self.program
    dockerpycreds.errors.InitializationError: docker-credential-gcloud not installed or not available in PATH
    
    opened by felipebueno 1
  • Use the correct link to manage beta users

    Use the correct link to manage beta users

    Currently, the email to inform that a new user requested an invite is using a dummy link. It should contain the link to the interface. The link is generated in beta/views.py

    opened by jayfk 0
  • Implement, document and test every url/template

    Implement, document and test every url/template

    / notes:

    • [x] view: TemplateView in config/urls.py
    • [x] template: templates/pages/home.html
    • [x] title: Home
    • [x] name: home

    about/ notes:

    • [x] view: TemplateView in config/urls.py
    • [x] template: templates/pages/about.html
    • [x] title: About
    • [x] name: about

    pricing/ notes:

    • [x] view: TemplateView in config/urls.py
    • [x] template: templates/pages/pricing.html
    • [x] title: Pricing
    • [x] name: pricing

    tos/ notes:

    • [x] view: TemplateView in config/urls.py
    • [x] template: templates/pages/tos.html
    • [x] title: Terms of Service
    • [x] name: tos

    privacy-policy/ notes:

    • [x] view: TemplateView in config/urls.py
    • [x] template: templates/pages/privacy-policy.html
    • [x] title: Privacy Policy
    • [x] name: privacy-policy

    app/ notes:

    • [x] view: DashboardView in {{project_slug}}/app/views.py
    • [x] template: templates/app/home.html
    • [x] title: Account - Home
    • [x] name: app:home

    app/users/~update/ notes:

    • [x] view: UserUpdateView in {{project_slug}}/users/views.py
    • [x] template: templates/app/users/user_form.html
    • [x] title: Profile
    • [x] name: app:users:update

    app/users/ notes:

    • [x] view: UserDetailView in {{project_slug}}/users/views.py
    • [x] template: templates/app/users/user_detail.html
    • [x] title: Profile
    • [x] name: app:users:detail

    auth/^^signup/$ notes: this url is provided by django-allauth

    • [x] view: x
    • [x] template: templates/auth/account/signup.html
    • [x] title: Sign Up
    • [x] name: account_signup

    auth/^^login/$ notes: this url is provided by django-allauth

    • [x] view: x
    • [x] template: templates/auth/account/login.html
    • [x] title: Login
    • [x] name: account_login

    auth/^^logout/$ notes: this url is provided by django-allauth. The template is not used since logout on GET is configured by default

    • [x] view: x
    • [x] template: None
    • [x] title: None
    • [x] name: account_logout

    auth/^^password/change/$ notes: this url is provided by django-allauth

    • [x] view: x
    • [x] template: templates/auth/account/password_change.html
    • [x] title: Change Password
    • [x] name: account_change_password

    auth/^^password/set/$ notes: this url is provided by django-allauth

    • [x] view: x
    • [x] template: templates/auth/account/password_set.html
    • [x] title: Set Password
    • [x] name: account_set_password

    auth/^^inactive/$ notes: this url is provided by django-allauth

    • [x] view: x
    • [x] template: templates/auth/account/account_inactive.html
    • [x] title: Account Inactive
    • [x] name: account_inactive

    auth/^^email/$ notes: this url is provided by django-allauth

    • [x] view: x
    • [x] template: templates/auth/account/email.html
    • [x] title:
    • [x] name: account_email

    auth/^^confirm-email/$ notes: this url is provided by django-allauth

    • [x] view: x
    • [x] template: templates/auth/account/verification_sent.html
    • [x] title: Veriy Email
    • [x] name: account_email_verification_sent

    auth/^^confirm-email/(?P[-:\w]+)/$ notes: this url is provided by django-allauth. The template is not used since the user is automatically logged in on confirmation.

    • [x] view: x
    • [x] template: None
    • [x] title: None
    • [x] name: account_confirm_email

    auth/^^password/reset/$ notes: this url is provided by django-allauth

    • [x] view: x
    • [x] template: templates/auth/account/password_reset.html
    • [x] title: Password Reset
    • [x] name: account_reset_password

    auth/^^password/reset/done/$ notes: this url is provided by django-allauth

    • [x] view: x
    • [x] template: templates/auth/account/password_reset_done.html
    • [x] title: Reset Password - done!
    • [x] name: account_reset_password_done

    auth/^^password/reset/key/(?P[0-9A-Za-z]+)-(?P.+)/$ notes: this url is provided by django-allauth

    • [x] view: x
    • [x] template: templates/auth/account/password_reset_from_key.html
    • [x] title: Change Password
    • [x] name: account_reset_password_from_key

    auth/^^password/reset/key/done/$ notes: this url is provided by django-allauth

    • [x] view: x
    • [x] template: templates/auth/account/password_reset_from_key_done.html
    • [x] title: Change Password
    • [x] name: account_reset_password_from_key_done

    auth/^social/^login/cancelled/$ notes: this url is provided by django-allauth

    • [x] view: x
    • [x] template: templates/auth/socialaccount/login_cancelled.html
    • [x] title: Login Cancelled
    • [x] name: socialaccount_login_cancelled

    auth/^social/^login/error/$ notes: this url is provided by django-allauth

    • [x] view: x
    • [x] template: templates/auth/socialaccount/authentication_error.html
    • [x] title: Network Login Failure
    • [x] name: socialaccount_login_error

    auth/^social/^signup/$ notes: this url is provided by django-allauth

    • [x] view: x
    • [x] template: templates/auth/socialaccount/signup.html
    • [x] title: None
    • [x] name: socialaccount_signup

    auth/^social/^connections/$ notes: this url is provided by django-allauth

    • [x] view: x
    • [x] template: templates/auth/socialaccount/connections.html
    • [x] title: Account Connections
    • [x] name: socialaccount_connections

    400/ notes: available while DEBUG=True

    • [x] view: path override in config/urls.py while DEBUG=True
    • [x] template: None using the standard Django template
    • [x] title: None, using the standard title

    403/ notes: available while DEBUG=True

    • [x] view: path override in config/urls.py while DEBUG=True
    • [x] template: templates/403.html
    • [x] title: Forbidden (403)

    404/ notes: available while DEBUG=True

    • [x] view: path override in config/urls.py while DEBUG=True
    • [x] template: templates/404.html
    • [x] title: Page not found (404)

    500/ notes: available while DEBUG=True

    • [x] view: path override in config/urls.py while DEBUG=True
    • [x] template: templates/500.html
    • [x] title: Server Error (500)
    opened by jayfk 0
  • Running in production

    Running in production

    The docker compose uses runserver. The documentation does not mention anything about a good pratice for running in production. Is there some gunircorn or other server that is included and ready to run?

    opened by vinyll 0
Owner
Jannis Gebauer
Uses time machines irresponsibly.
Jannis Gebauer
Django starter project with 🔋

A batteries-included Django starter project. For a production-ready version see the book Django for Professionals. ?? Features Django 3.1 & Python 3.8

William Vincent 1.5k Jan 8, 2023
Django project/application starter for lazybones :)

Django Project Starter Template My custom project starter for Django! I’ll try to support every upcoming Django releases as much as I can! Requirement

Uğur Özyılmazel 40 Jul 16, 2022
A Django starter template with a sound foundation.

SOS Django Template SOS Django Tempalate is a Django starter template that has opinionated and good solutions while starting your new Django project.

Eray Erdin 19 Oct 30, 2022
Starter project for python based lambda project.

Serverless Python Starter Starter project for python based lambda project. Features FastAPI - Frontend dev with Hot Reload API Gateway Integration (+r

null 4 Feb 22, 2022
simple flask starter app utilizing docker

Simple flask starter app utilizing docker to showcase seasonal anime using jikanpy (myanimelist unofficial api).

Kennedy Ngugi Mwaura 5 Dec 15, 2021
This is the starter for the Flask React project.

Flask React Project This is the starter for the Flask React project. Getting started Clone this repository (only this branch) git clone https://github

Jami Travers 5 May 25, 2022
The starter for the Flask React project

Flask React Project This is the starter for the Flask React project. Getting started Clone this repository (only this branch) git clone https://github

Parker Bolick 2 May 14, 2022
A python starter package to be used as a template for creating your own python packages.

Python Starter Package This is a basic python starter package to be used as a template for creating your own python packages. Github repo: https://git

Mystic 1 Apr 4, 2022
The starter repository for submissions to the GeneDisco challenge for optimized experimental design in genetic perturbation experiments

GeneDisco ICLR-22 Challenge Starter Repository The starter repository for submissions to the GeneDisco challenge for optimized experimental design in

null 22 Dec 6, 2022
Django sample app with users including social auth via Django-AllAuth

demo-allauth-bootstrap Simple, out-of-the-box Django all-auth demo app A "brochure" or visitor (no login required) area A members-only (login required

Andrew E 215 Dec 20, 2022
Cookiecutter Django is a framework for jumpstarting production-ready Django projects quickly.

Cookiecutter Django Powered by Cookiecutter, Cookiecutter Django is a framework for jumpstarting production-ready Django projects quickly. Documentati

Daniel Roy Greenfeld 10k Jan 1, 2023
Vue + Django with no compromises. Django Templates and Vue SFCs in harmony without sacrificing the full power of either.

Cookiecutter Vue Django Vue + Django with no compromise. Cookiecutter Vue Django is a framework for jumpstarting production-ready Django + Vue project

Mike Hoolehan 122 Dec 22, 2022
Open-source full-stack seed project that uses a React UI powered by a simple Flask API Server

React Flask Authentication Open-source full-stack seed project that uses a React UI powered by a simple Flask API Server.

App Generator 37 Dec 24, 2022
A Boilerplate repo for Scientific Python Open Science projects

A Boilerplate repo for Scientific Python Open Science projects Installation Clone this repo If you need a fresh python environment, run $ conda env cr

Vincent Choqueuse 2 Dec 23, 2021
A boilerplate for Django web applications

Django Hackathon Starter A boilerplate application for Django web applications. If you've attented hackathons, you already know how much time can be w

David Leonard 1.6k Dec 31, 2022
A Django project skeleton that is modern and cutting edge.

{% comment "This comment section will be deleted in the generated project" %} Edge A Fantastic Django project starter. Features Ready Bootstrap-themed

Arun Ravindran 827 Dec 15, 2022
Bleeding edge django template focused on code quality and security.

wemake-django-template Bleeding edge django2.2 template focused on code quality and security. Purpose This project is used to scaffold a django projec

wemake.services 1.6k Jan 4, 2023
A framework for launching new Django Rest Framework projects quickly.

DRFx A framework for launching new Django Rest Framework projects quickly. Comes with a custom user model, login/logout/signup, social authentication

William Vincent 400 Dec 29, 2022
Project template layout for Django 3.0+

Django 3.0+ project template This is a simple Django 3.0+ project template with my preferred setup. Most Django project templates make way too many as

José Padilla 649 Dec 30, 2022