From 75781b92a66914995123699e909f78cc7b6be164 Mon Sep 17 00:00:00 2001 From: Gitead Date: Sun, 19 Jul 2026 18:27:06 -0400 Subject: [PATCH] docs: add auto-login and git install steps to setup guide --- README.md | 71 +++++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 53 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index 69dea892..4f501c1b 100644 --- a/README.md +++ b/README.md @@ -40,14 +40,49 @@ sudo systemctl stop sshd && sudo systemctl disable sshd Follow these steps in order after cloning the repository. -### Step 1 — Clone the repository +### Step 1 — Enable auto-login (LXQt / SDDM) + +This office PC uses Debian with the LXQt desktop and the SDDM login manager. Set it to log straight into the desktop on boot, no password prompt. + +Create a drop-in config (replace `jj` with the actual Linux username if different): + +```sh +sudo mkdir -p /etc/sddm.conf.d +sudo tee /etc/sddm.conf.d/autologin.conf > /dev/null <<'EOF' +[Autologin] +User=jj +Session=lxqt.desktop +EOF +``` + +Verify it was written: + +```sh +cat /etc/sddm.conf.d/autologin.conf +``` + +Reboot to apply — the PC should boot straight to the desktop with no login screen. + +> If a different session is installed, list available sessions with `ls /usr/share/xsessions/` and use that filename instead of `lxqt.desktop`. + +### Step 2 — Install Git + +```sh +sudo apt update +sudo apt install -y git + +# Verify +git --version +``` + +### Step 3 — Clone the repository ```sh git clone cd DentalManagementMHAprilgg ``` -### Step 2 — Install Node.js +### Step 4 — Install Node.js Required to run the Backend and Frontend. @@ -60,7 +95,7 @@ node -v # should print v20.x.x npm -v ``` -### Step 3 — Install Python +### Step 5 — Install Python Required to run the Selenium and OCR services. @@ -71,7 +106,7 @@ sudo apt-get install -y python3 python3-pip python3-venv python3 --version # should print 3.10 or higher ``` -### Step 4 — Install Chrome +### Step 6 — Install Chrome Required for the Selenium service to control a browser. @@ -87,7 +122,7 @@ google-chrome --version > The `webdriver-manager` package (included in `requirements.txt`) automatically downloads the matching ChromeDriver — no manual driver setup needed. -### Step 5 — Install PostgreSQL +### Step 7 — Install PostgreSQL Primary database for the application. @@ -125,7 +160,7 @@ psql -U postgres -d dentalapp -h 127.0.0.1 -W > DATABASE_URL="postgresql://postgres:mypassword@localhost:5432/dentalapp" > ``` -### Step 6 — Install Redis +### Step 8 — Install Redis Used as the job queue for Selenium and OCR background tasks. @@ -138,7 +173,7 @@ sudo systemctl start redis-server redis-cli ping # should print: PONG ``` -### Step 7 — Install rclone +### Step 9 — Install rclone Required for cloud backup destinations (Google Drive, Dropbox, etc.). @@ -153,19 +188,19 @@ To verify it installed correctly, open a terminal and run: rclone version ``` -### Step 8 — Install Node.js dependencies +### Step 10 — Install Node.js dependencies ```sh npm install ``` -### Step 9 — Install Python dependencies +### Step 11 — Install Python dependencies -Python dependencies are installed automatically by `npm install` (Step 8) via each service's `postinstall` script. Each service creates its own `.venv` virtual environment — no manual pip commands needed. +Python dependencies are installed automatically by `npm install` (Step 10) via each service's `postinstall` script. Each service creates its own `.venv` virtual environment — no manual pip commands needed. > This approach is required on Debian 13+ where system-wide pip installs are blocked (PEP 668). -### Step 10 — Set up environment variables +### Step 12 — Set up environment variables Copy the `.env.example` files and fill in the required values. @@ -173,9 +208,9 @@ Copy the `.env.example` files and fill in the required values. npm run setup:env ``` -### Step 10a — Set the Cloudflare subdomain for this office +### Step 12a — Set the Cloudflare subdomain for this office -After running `npm run setup:env` (Step 10), open the two `.env` files and fill in this office's Cloudflare subdomain. +After running `npm run setup:env` (Step 12), open the two `.env` files and fill in this office's Cloudflare subdomain. **`apps/Frontend/.env`** ```env @@ -192,7 +227,7 @@ Replace `yoursubdomain` with this office's actual subdomain (e.g. `summitdentalc > If you skip this step, Cloudflare tunnel access will not work. LAN access still works without it. -### Step 11 — Set up the database +### Step 13 — Set up the database ```sh # Run migrations @@ -205,7 +240,7 @@ npm run db:generate npm run db:seed ``` -### Step 12 — Configure nginx +### Step 14 — Configure nginx Install nginx: @@ -234,7 +269,7 @@ sudo nginx -t && sudo systemctl reload nginx > **Important:** The `/api/` location block must include `proxy_set_header Authorization $http_authorization;` > Without it, nginx strips the Authorization header and the backend returns "Access denied. No token provided." -### Step 13 — Run the app +### Step 15 — Run the app Open two terminals: @@ -251,7 +286,7 @@ cd apps/SeleniumService .venv/bin/python3 agent.py ``` -### Step 14 — Create desktop shortcuts (optional) +### Step 16 — Create desktop shortcuts (optional) Instead of opening two terminals manually every time, you can create desktop shortcuts that start and stop all services with a single double-click. @@ -582,7 +617,7 @@ In the Cloudflare dashboard for `mydentalofficemanagement.com` → DNS → Add r - Type: `A`, Name: `local-` (e.g. `local-summit`), Content: this PC's LAN IP - **Proxy status: DNS only** (grey cloud) — required, Cloudflare can't proxy a private IP -### Step 2 — Install nginx (if not already done in Step 12 above) +### Step 2 — Install nginx (if not already done in Step 14 above) ```sh sudo apt update