/home/techb158/trello-import.abdallabala.com/deploy
NameSizeModeActions
CLOUDFLARE_TUNNEL.md47480644editdlrm
nginx-site.conf10490644editdlrm
VPS_DEPLOYMENT.md36760644editdlrm
Edit: /home/techb158/trello-import.abdallabala.com/deploy/VPS_DEPLOYMENT.md (3676B)
# VPS deployment guide This Power-Up is a static site. On a VPS, the recommended setup is: - Docker Compose runs the Power-Up on localhost port `8080`. - Nginx on the host terminates HTTPS and proxies to the container. - Trello Power-Up Admin points the iframe connector URL to `https://YOUR_DOMAIN/index.html`. ## Prerequisites - A domain or subdomain pointed to your VPS, for example `trello-import.example.com`. - Docker and Docker Compose installed. - Nginx installed on the VPS. - A Trello Power-Up API key from Trello Power-Up Admin. ## 1. Upload the project From your local machine: ```bash scp trello-import-powerup.zip root@YOUR_SERVER_IP:/opt/ ssh root@YOUR_SERVER_IP cd /opt unzip trello-import-powerup.zip cd trello-import-powerup ``` ## 2. Configure the Trello API key ```bash cp .env.example .env nano .env ``` Set: ```env TRELLO_APP_KEY=your_real_trello_powerup_api_key TRELLO_APP_NAME=Import JSON/CSV TRELLO_APP_AUTHOR=Your Name or Company TRELLO_APP_VERSION=1.0.0 ``` ## 3. Start the app container ```bash docker compose up -d --build curl http://127.0.0.1:8080/healthz ``` Expected output: ```text ok ``` ## 4. Configure Nginx on the host ```bash cp deploy/nginx-site.conf /etc/nginx/sites-available/trello-import-powerup.conf sed -i 's/DOMAIN_NAME/trello-import.example.com/g' /etc/nginx/sites-available/trello-import-powerup.conf ln -s /etc/nginx/sites-available/trello-import-powerup.conf /etc/nginx/sites-enabled/trello-import-powerup.conf nginx -t ``` Before enabling the HTTPS server block, you need a certificate. With Certbot, one common flow is: ```bash apt update apt install -y certbot python3-certbot-nginx certbot --nginx -d trello-import.example.com nginx -t systemctl reload nginx ``` Then test: ```bash curl -I https://trello-import.example.com/index.html ``` ## 5. Update Trello Power-Up Admin In Trello Power-Up Admin: 1. Set **Iframe connector URL** to: ```text https://trello-import.example.com/index.html ``` 2. Enable these capabilities: ```text board-buttons on-enable show-settings ``` 3. In the API Key tab, add this allowed origin: ```text https://trello-import.example.com ``` 4. Save, then enable the Power-Up on a test Trello board. ## 6. Smoke test 1. Open a Trello board where the Power-Up is enabled. 2. Click **Import JSON/CSV**. 3. Upload `samples/cards.csv` or `samples/cards.json`. 4. Preview the rows. 5. Import to a test list. ## Updating later Upload the new zip, then: ```bash cd /opt/trello-import-powerup docker compose up -d --build ``` ## Troubleshooting ### The Power-Up button does not show Check that `board-buttons` is enabled in Power-Up Admin and that the board has the Power-Up enabled. ### The Power-Up iframe fails to load Open this URL directly in a browser: ```text https://trello-import.example.com/index.html ``` It should return the connector page without a certificate error. ### Authorization fails Confirm that the exact origin is present in the Power-Up API Key tab: ```text https://trello-import.example.com ``` Do not include `/index.html` in the allowed origin. ### Browser console shows frame blocking errors Make sure your reverse proxy is not adding this header: ```text X-Frame-Options: SAMEORIGIN ``` Trello needs to load the connector in an iframe. ## Alternative: Cloudflare Tunnel, no inbound ports If you do not want to expose inbound `80` or `443`, do not use this Nginx/Certbot guide. Use the Cloudflare Tunnel guide instead: ```text deploy/CLOUDFLARE_TUNNEL.md ``` That setup runs `cloudflared` in Docker and routes the public hostname to the private service `http://trello-import-powerup:80`.