404 Not Found - wsl setup for developer

Hi, trying to set up for development. I’m using WSL2 fresh install. Pardon the changes below but new users can only put 2 links in.
Ran the following commands:

Create environment

python3 -m venv venv
source venv/bin/activate
pip install frappe-bench

Install Redis

curl -fsSL h t t p s : / / packages . redis . io/ gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg
echo “deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] h t t p s : / / packages.redis.io/deb $(lsb_release -cs) main” | sudo tee /etc/apt/sources.list.d/redis.list
sudo apt-get update
sudo apt-get install redis

Install NVM

curl -o- h t t p s : / / raw . githubusercontent . com/nvm-sh/nvm/master/install.sh | bash
export NVM_DIR=“$HOME/.nvm”
[ -s “$NVM_DIR/nvm.sh” ] && . “$NVM_DIR/nvm.sh” # This loads nvm
[ -s “$NVM_DIR/bash_completion” ] && . “$NVM_DIR/bash_completion” # This loads nvm bash_completion
nvm install --lts

Install Yarn

curl -o- -L h t t p s : / / yarnpkg . com /install.sh | bash

Install wkhtmltopdf

apt-get install xvfb libfontconfig wkhtmltopdf

Install MariaDB

sudo apt-get install mariadb-server
sudo mysql_secure_installation
sudo apt-get install mariadb-client
sudo service mysql restart

change in /etc/mysql/mariadb.conf.d/50-server.cnf

from:

#collation-server = utf8mb4_general_ci

to:

collation-server = utf8mb4_unicode_ci

Install a bench

bench init b1

Now go to the bench directory and run bench commands

cd b1

Example App

bench new-app meeting
bench new-site meeting.dev
bench --site meeting.dev install-app meeting
bench --site meeting.dev set-config developer_mode 1
bench --site meeting.dev set-config host_name " h t t p : / / meeting . dev : 8000"

Make sure /etc/hosts points 127.0.0.1 to meeting.dev

Did this on both /etc/hosts and c:\windows\system32\drivers\etc\hosts

bench start

Web browsers on the windows machine all force https, however even after wrestling them and changing to .local instead of .dev due to it being a real world suffix I still get nothing.

site_config.json
{
“db_name”: “_hex digits”,
“db_password”: “encrypted password”,
“db_type”: “mariadb”,
“developer_mode”: 1,
“host_name”: “h t t p : / / meeting . local :8000”
}

±-----------------------------±--------------------------+
| Config | Value |
±-----------------------------±--------------------------+
| background_workers | 1 |
| file_watcher_port | 6787 |
| frappe_user | tim |
| gunicorn_workers | 33 |
| live_reload | True |
| rebase_on_pull | False |
| redis_cache | redis://localhost:13000 |
| redis_queue | redis://localhost:11000 |
| redis_socketio | redis://localhost:12000 |
| restart_supervisor_on_update | False |
| restart_systemd_on_update | False |
| serve_default_site | True |
| shallow_clone | True |
| socketio_port | 9000 |
| use_redis_auth | False |
| webserver_port | 8000 |
| db_name | _abcabcabc |
| db_password | abcabcabc |
| db_type | mariadb |
| developer_mode | 1 |
| host_name | http://meeting.local:8000 |
| db_host | 127.0.0.1 |
| db_port | 3306 |
±-----------------------------±--------------------------+

c:>ping meeting.local

Pinging meeting.local [127.0.0.1] with 32 bytes of data:
Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
Reply from 127.0.0.1: bytes=32 time<1ms TTL=128

Ping statistics for 127.0.0.1:
Packets: Sent = 3, Received = 3, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms

I am merely trying to follow creating an app even though some of what I see is different due to the age of the video. config.py and docs.py were missing for me, but I put them in as per the video.
h t t p s : / / Session 1: Creating an App - YouTube

Regards,
Tim

OK, for future me and others, I had the following problems.

  1. When the video was recorded it was ok to use meeting.dev. Now google will wrestle you to the ground if you try to use .dev - as will all the other browsers.
  2. The directory name of the site needs to be the same as the host_name url in site_config.json. Why? Something I guess I will understand eventually.