LogoLogo
v1.2.0
v1.2.0
  • 🌸What is Petal Pro?
  • 💡V1.2.0 Overview
  • ⏫Upgrade guide
  • Guides
    • 🚀Creating a web app from start to finish
  • Fundamentals
    • 💿Installation
    • 📂Folder structure
    • 🗃️Included Pages
    • 😀Users & Authentication
    • 🏢Organizations & Multitenancy
    • 🧊Components
    • 🎨Branding
    • 🌱Seeding
    • 📄Layouts & Menus
    • 🛠️Background Tasks and Jobs
    • 🔧Util, DB & Helpers
    • 📧Emails
    • 🪝Javascript Hooks
    • 📚Extra Hex Libraries
    • 🏗️Generators & Page Builder
    • 🗣️Translations
    • 🖐️Contributing
    • 🛫Deployment
Powered by GitBook
On this page
  • Quick install instructions
  • Comprehensive install instructions
  • Other tools we use to help develop web apps
  • Contributing

Was this helpful?

  1. Fundamentals

Installation

PreviousCreating a web app from start to finishNextFolder structure

Last updated 2 years ago

Was this helpful?

Quick install instructions

If you just want to see something running without configuring anything:

  1. Download the

  2. Run mix setup

  3. Run mix phx.server

Comprehensive install instructions

1. Download and unzip a release

We recommend downloading the latest version from a "Release" (either from or our ).

It is possible to clone from the main branch - there is a slightly higher chance of bugs (although we will endeavour to keep the main branch as stable as possible).

2. Install Elixir & Erlang with asdf

If you already have Elixir and Erlang installed you can skip to the next section.

We recommend using to manage your Elixir and Erlang versions. It allows you to have multiple versions on your computer.

For Macs using Homebrew:

brew install coreutils curl git gnupg gnupg2
brew install asdf

# Add executable to your terminal setup file. 
# Bash users:
echo -e "\n. $(brew --prefix asdf)/libexec/asdf.sh" >> ~/.bash_profile

# zsh users
echo -e "\n. $(brew --prefix asdf)/libexec/asdf.sh" >> ${ZDOTDIR:-~}/.zshrc

# Reload your terminal
asdf plugin add erlang
asdf plugin add elixir

# Navigate to the root of your Petal Pro folder
# Check the file .tool-versions - these are the version we will use.
asdf install

3. Rename your project

Warning: if you plan to merge in future Petal Pro commits (eg. if you're waiting for an upcoming feature like payment handling), then perhaps hold off renaming as it makes merging harder.

Your app module is currently called PetalPro. There is a script file included that will rename your project to anything you like in one go. Open the file rename_phoenix_project.sh and read the instructions at the top.

4. Run the setup command

In your terminal, run the command:

mix setup

This will fetch dependencies, create and migrate your database, and run the seeds script (creates and admin user and some dummy users).

5. Install chromedriver

brew install --cask chromedriver

# You may also need to run this (if it says something like "Unable to open chromedriver"):
xattr -d com.apple.quarantine $(which chromedriver)

6. Run the server

mix phx.server

# Or, if you want IEX running at the same time:
iex -S mix phx.server

7. Add in your branding and details (can be done later)

We have added comments throughout the codebase providing instructions on how to add in your app details and branding. Simply do a global find in your code editor for the text "SETUP_TODO" and follow the instructions.

Other tools we use to help develop web apps

  • Database GUI - pick one based on your budget:

Contributing

Petal Pro is a paid product but we welcome PR's if you find small bugs / typos / improvements. Let us know if you want to contribute in a more significant way and we can offer unlimited membership in return.

In order for tests to work, you will need to install (we utilize for e2e tests). On a Mac you can install it with:

Now you can visit from your browser.

to replace Mac terminal

to enhance your terminal

to replace BASH with zsh within the terminal

(paid) - though it's included with a subscription

(free)

to help use git

for near instantaneous documentation. Useful when you keep looking up Elixir functions like String.match?.

for issue tracking

for design

to replace spotlight

💿
latest release
Github
downloads page
asdf
Chromedriver
Wallaby
localhost:4000
iTerm2
Fig
ZSH Prezto
TablePlus
SetApp
Beekeeper
SourceTree
Dash
Linear
Figma
Raycast