Commit graph

75 commits

Author SHA1 Message Date
Tiago Yamamoto
b2284921ea feat: add Cloudflare and cPanel admin routes
Cloudflare Cache Management:
- GET /api/v1/admin/cloudflare/zones
- POST /api/v1/admin/cloudflare/cache/purge-all
- POST /api/v1/admin/cloudflare/cache/purge-urls
- POST /api/v1/admin/cloudflare/cache/purge-tags
- POST /api/v1/admin/cloudflare/cache/purge-hosts

cPanel Email Management:
- GET /api/v1/admin/cpanel/emails
- POST /api/v1/admin/cpanel/emails
- DELETE /api/v1/admin/cpanel/emails/{email}
- PUT /api/v1/admin/cpanel/emails/{email}/password
- PUT /api/v1/admin/cpanel/emails/{email}/quota

All routes protected by JWT auth middleware.
Added CLOUDFLARE_* and CPANEL_* env vars to .env.example
2025-12-14 10:11:36 -03:00
Tiago Yamamoto
1e753b611a chore: add scraper API URL to frontend .env.example and fix gitignore
- Add NEXT_PUBLIC_SCRAPER_API_URL to frontend/.env.example
- Re-enable .env* ignore rules in frontend/.gitignore
2025-12-14 09:57:02 -03:00
Tiago Yamamoto
aa31b917bd security: remove accidentally committed .env file 2025-12-14 09:52:34 -03:00
Tiago Yamamoto
ddc4e2c2bf chore: add complete .env.example files for all services
- frontend/.env.example: Add SEEDER_API_URL
- seeder-api/.env.example: Expand with server config and backend URL
- job-scraper-multisite/.env.example: New file with scraping config
- Update gitignore files to allow .env.example tracking
2025-12-14 09:48:56 -03:00
Tiago Yamamoto
dc1a63a3fc fix: correct swagger.json host port to 8521 2025-12-14 09:42:31 -03:00
Tiago Yamamoto
6f348c7975 chore: add frontend .env.example and fix gitignore
- Update frontend/.gitignore to allow .env.example
- Create frontend/.env.example with correct API_URL format (/api/v1 suffix)
- Document production URL: https://api-dev.gohorsejobs.com/api/v1
2025-12-14 09:39:24 -03:00
Tiago Yamamoto
703e651daa docs: update swagger.json with Jobs endpoints and fix README
- Add Jobs endpoints to swagger.json manually (/jobs GET, POST, /jobs/{id} GET, PUT, DELETE)
- Update README.md Swagger URL from /swagger/ to /docs/
- Add production URL: https://api-dev.gohorsejobs.com/docs/index.html
- Expand endpoints table with all available routes
- Fix port from 8080 to 8521
2025-12-14 09:31:28 -03:00
Tiago Yamamoto
9667e94545 chore: add Dockerfiles and gitignore files for all services
Root:
- Add comprehensive .gitignore covering all subprojects

Seeder API (Node.js):
- Add Dockerfile with multi-stage build, non-root user, health check
- Add .dockerignore and .gitignore

Job Scraper (Python):
- Add Dockerfile with Python 3.12, non-root user
- Add .dockerignore and .gitignore

Existing backend/frontend Dockerfiles and .dockerignore already optimized
2025-12-14 09:28:09 -03:00
Tiago Yamamoto
a4abcf8e05 feat: SEO optimization and dynamic jobs API integration
Backend:
- Add Swagger annotations to all job handlers (GET, POST, PUT, DELETE)
- Clean up job handler code

Frontend:
- Expand api.ts with ApiJob types, pagination, and transform function
- Update footer with 'Vagas por Tecnologia' SEO links
- Add robots.txt with crawler directives
- Add sitemap.xml with main pages and job URLs
- Change branding to GoHorse Jobs
2025-12-14 09:16:44 -03:00
Tiago Yamamoto
8856357acd feat: add JobScraper_MultiSite Python project
- main_scraper.py: Main entry point, consolidates data from all sources
- scrapers/programathor_scraper.py: Scraper for ProgramaThor
- scrapers/geekhunter_scraper.py: Scraper for GeekHunter
- requirements.txt: Python dependencies (requests, beautifulsoup4, pandas)
- README.md: Documentation with usage instructions
- Modular architecture for easy addition of new sites
2025-12-14 09:10:17 -03:00
Tiago Yamamoto
15fe5db50e fix(backend): relax CSP for Swagger UI docs
- Allow 'unsafe-inline' and 'unsafe-eval' scripts on /docs routes
- Swagger UI requires inline scripts to function properly
- Keep strict CSP for all other API routes
2025-12-14 09:04:19 -03:00
Tiago Yamamoto
dc2142499b fix(backend): improve migration logs with friendly messages
- Show ⏭️ 'skipped (already applied)' for migrations that already exist
- Add emojis for better log readability ( success,  error, 📦 running)
- Avoid confusing 'Error' messages when migrations are simply re-applied
2025-12-14 09:00:38 -03:00
Tiago Yamamoto
60eafdc6e2 feat(backend): add root route with IP info and move swagger to /docs
- Add root route (/) returning JSON with client IP, API info and links
- Move Swagger docs from /swagger/ to /docs/
- Include X-Forwarded-For and X-Real-IP header support for proxy environments
2025-12-14 08:56:25 -03:00
Tiago Yamamoto
4475bc6bda feat(devops): multi-environment k8s setup and DevOps documentation
- Reorganized k8s manifests into dev/, hml/, prd/ folders
- Added resource limits and health probes to deployments
- DEV: 1 replica, HML: 2 replicas, PRD: 3 replicas
- Updated .drone.yml to use environment-specific k8s paths
- Created comprehensive DEVOPS.md documentation
- Removed old k8s files from root folder
2025-12-13 19:30:43 -03:00
Tiago Yamamoto
7a147bd9e9 fix(drone): update docker repo to gohorsejobsdev namespace 2025-12-13 19:06:45 -03:00
Tiago Yamamoto
082ba6df8c feat(k8s): configure dev environment pipeline and namespace
- Rename pipeline to 'deploy-backend-dev' for dev branch
- Add trigger for dev branch only
- Change namespace from 'gohorsejobs' to 'gohorsejobsdev'
- Use DB_NAME_DEV secret for dev database
- Update deployment and service manifests for dev namespace
2025-12-13 19:02:36 -03:00
Tiago Yamamoto
14c4bc8370 fix(frontend): remove invalid AdminSidebar import from messages page 2025-12-13 18:46:00 -03:00
Tiago Yamamoto
0684ebfdf6 fix(frontend): remove invalid AdminSidebar import from candidates page
The AdminSidebar component doesn't exist - the dashboard layout already provides the sidebar.
2025-12-13 18:39:04 -03:00
Tiago Yamamoto
be35be0c10 fix(docker): align Dockerfile port with .env configuration (8521)
- Updated EXPOSE from 8080 to 8521
- Updated HEALTHCHECK to check port 8521
- Updated default ENV PORT from 8080 to 8521

This fixes the deployment health check issue where the container
was expecting port 8080 but the app was configured to run on 8521.
2025-12-13 18:23:48 -03:00
Tiago Yamamoto
e0288e91e5 Merge branch 'hml' into dev 2025-12-13 16:51:06 -03:00
Marcus Bohessef
94597dfeed ajuste na porta 2025-12-12 15:59:27 -03:00
Marcus Bohessef
672ac05e22 ajuste na porta 2025-12-12 15:47:26 -03:00
Marcus Bohessef
5082ac8e14 ajuste na porta 2025-12-12 15:41:54 -03:00
Marcus Bohessef
e0cc53fcf6 ajuste na porta 2025-12-12 15:28:39 -03:00
Marcus Bohessef
fae2fb00bd ajuste na porta 2025-12-12 15:08:53 -03:00
Marcus Bohessef
94a4c99d6b ajuste no drone.yml 2025-12-12 10:54:06 -03:00
Marcus Bohessef
9f872128b3 ajuste no drone.yml 2025-12-12 10:47:57 -03:00
Marcus Bohessef
a6ea992234 ajuste no drone.yml 2025-12-12 10:46:58 -03:00
Marcus Bohessef
6b9b8ba617 ajuste no drone.yml 2025-12-12 10:46:12 -03:00
Marcus Bohessef
1758a74ad2 ajuste no drone.yml 2025-12-12 10:45:22 -03:00
Marcus Bohessef
038bc5ce26 ajuste no drone.yml 2025-12-12 10:34:51 -03:00
Marcus Bohessef
1b9bf04658 ajuste no drone.yml 2025-12-12 10:21:31 -03:00
Marcus Bohessef
09976c1d6c ajuste no drone.yml 2025-12-12 10:17:37 -03:00
Marcus Bohessef
7a3c7f61b9 ajuste no drone.yml 2025-12-12 10:16:32 -03:00
Marcus Bohessef
bf75408e03 ajuste no drone.yml 2025-12-12 10:10:17 -03:00
Marcus Bohessef
366fb81245 ajuste no drone.yml 2025-12-12 10:08:43 -03:00
Marcus Bohessef
593fca41f0 ajuste no drone.yml 2025-12-12 10:03:11 -03:00
Marcus Bohessef
5589e82899 ajuste no drone.yml 2025-12-12 09:47:36 -03:00
Marcus Bohessef
ff99d9ce4e ajuste no drone.yml 2025-12-12 09:27:40 -03:00
Marcus Bohessef
832798b9e8 ajuste no drone.yml 2025-12-12 00:27:19 -03:00
Marcus Bohessef
c32e5a0d96 ajuste no drone.yml 2025-12-12 00:14:08 -03:00
Marcus Bohessef
44641a9115 ajuste no drone.yml 2025-12-12 00:05:22 -03:00
Marcus Bohessef
164294fc27 ajuste no drone.yml 2025-12-12 00:00:29 -03:00
Marcus Bohessef
40fefb88ae ajuste no drone.yml 2025-12-11 23:58:50 -03:00
Marcus Bohessef
7a607e4cbe ajuste no drone.yml 2025-12-11 23:52:43 -03:00
Marcus Bohessef
94c58ba9e2 ajuste no drone.yml 2025-12-11 23:51:56 -03:00
Marcus Bohessef
ef5db9f91a ajuste no drone.yml 2025-12-11 23:50:52 -03:00
Marcus Bohessef
d70bacac7e ajuste no drone.yml 2025-12-11 23:50:13 -03:00
Marcus Bohessef
c5b31e7123 ajuste no drone.yml 2025-12-11 23:48:55 -03:00
Marcus Bohessef
d0f7884611 ajuste no drone.yml 2025-12-11 23:46:34 -03:00