f:: Python, JavaScript, MariaDB, PostgreSQL, Redis

Frappe Manager

# Install Frappe Manager
pip install frappe-manager
 
# Setup shell completion
fm --install-completion
# Create your first site
fm create devsite --environment dev

Installation

macOS

curl -L https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-2/wkhtmltox-0.12.6-2.macos-cocoa.pkg -O
 
sudo installer -pkg wkhtmltox-0.12.6-2.macos-cocoa.pkg -target ~
brew install [email protected] git redis [email protected] node@18 postgresql pkg-config mariadb-connector-c mysql-client
nano /opt/homebrew/etc/my.cnf
[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
bind-address = 127.0.0.1
 
[mysql]
default-character-set = utf8mb4
brew services restart [email protected]
sudo mysql -u root
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('your_new_password');
FLUSH PRIVILEGES;

Install Bench CLI

curl -LsSf https://astral.sh/uv/install.sh | sh
vim ~/.zshrc
alias bench='uvx --from frappe-bench bench'
bench --version
Installed 18 packages in 21ms
5.23.0
bench init frappe-bench
cd frappe-bench
bench start

Development using containers

Bootstrap Containers for development

git clone https://github.com/frappe/frappe_docker
cd frappe_docker

Copy example devcontainer config

cp -R devcontainer-example .devcontainer

Copy example vscode config for devcontainer. This will setup basic configuration for debugging.

cp -R development/vscode-example development/.vscode

Use VSCode Remote Containers extension

Command Palette (Ctrl + Shift + P) Dev Containers: Reopen in Container

nvm ls
       v16.20.2
->     v18.18.2
default -> v18.18.2
iojs -> N/A (default)
unstable -> N/A (default)
node -> stable (-> v18.18.2) (default)
stable -> 18.18 (-> v18.18.2) (default)
lts/* -> lts/jod (-> N/A)
lts/argon -> v4.9.1 (-> N/A)
lts/boron -> v6.17.1 (-> N/A)
lts/carbon -> v8.17.0 (-> N/A)
lts/dubnium -> v10.24.1 (-> N/A)
lts/erbium -> v12.22.12 (-> N/A)
lts/fermium -> v14.21.3 (-> N/A)
lts/gallium -> v16.20.2
lts/hydrogen -> v18.20.8 (-> N/A)
lts/iron -> v20.19.0 (-> N/A)
lts/jod -> v22.14.0 (-> N/A)

Setup bench / new site using script

python installer.py