Commit graph

30 commits

Author SHA1 Message Date
Claude Code
a8f2078e5b Add server update scripts and fix repository URLs
All checks were successful
CI / Lint Code (push) Successful in 1m39s
CI / Security Checks (push) Successful in 1m30s
CI / Validate i18n Files (push) Successful in 9s
CI / TypeScript Type Check (push) Successful in 1m49s
CI / Build Project (push) Successful in 1m59s
CI / Run Tests (Node 18) (push) Successful in 2m8s
Auto Tag Release / Create Auto Tag (push) Successful in 2m22s
CI / Run Tests (Node 20) (push) Successful in 2m18s
CI / Test Coverage (push) Successful in 3m13s
Deploy Scripts to S3 / deploy-scripts (push) Successful in 34s
- Add scripts/server-update.sh for production deployments
- Add scripts/dev-update.sh for development updates
- Update repository URLs to signal-works/icewatch
- Document update scripts in CLAUDE.md

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-08 21:27:11 -04:00
Claude Code
ec60d6bd2a Add version footer and disable map scroll wheel zoom
- Add build-time version generation script that captures git commit info
- Create /api/version endpoint to serve version data
- Add version footer component showing commit SHA, date, and branch
- Link version SHA to commit on git.deco.sh for easy navigation
- Fix footer text duplication issue with i18n translations
- Disable mouse wheel zoom on map, require +/- buttons for better UX
- Update service worker cache to v4 with new version-footer.js

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-07 22:37:20 -04:00
Claude Code
56c846a44b Update documentation for TypeScript frontend build system
- README.md: Add comprehensive build system section explaining TypeScript backend/frontend compilation, esbuild usage, and development commands
- CLAUDE.md: Update architecture documentation to reflect TypeScript frontend with shared components and esbuild compilation
- scripts/deploy.sh: Update deployment instructions to use new unified build command

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-07 20:36:58 -04:00
Claude Code
5151e87824 Add TypeScript frontend build system with shared components
- Set up esbuild for fast TypeScript compilation of frontend code
- Create SharedHeader component with factories for main/admin/privacy pages
- Create SharedFooter component with standard and minimal variants
- Add frontend build scripts (build:frontend, watch:frontend, dev:full)
- Configure TypeScript for browser environment with DOM types
- Add example page demonstrating shared component usage
- Update .gitignore to exclude compiled frontend files

Benefits:
- Type-safe frontend components
- Consistent headers/footers across all pages
- Single source of truth for common UI elements
- Built-in i18n and theme toggle support

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-07 19:46:19 -04:00
Claude Code
dc6754a0fc Add Git installation to deployment script
- Install git package alongside Node.js and build-essential
- Ensures git is available for cloning the repository
- Prevents deployment failures on minimal server images

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-06 19:00:32 -04:00
Claude Code
c395183158 Sync all deployment documentation and remove manual database creation
- Align deploy.sh, deployment.md, and deployment-quickstart.md with consistent steps
- Remove manual database file creation (SQLite creates them automatically)
- Update all documents to use npm run build instead of npm run build:ts
- Add architecture support for both ARM64 and x86_64
- Include S3_BUCKET_NAME=none option for local-only deployment
- Fix step numbering after removing database creation step

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-06 18:37:48 -04:00
Claude Code
e2b3593c37 Fix database path issues and update deployment instructions
- Fix DatabaseService.ts to use correct relative paths (../../ instead of ../../../)
- Add npm run build step to deployment instructions
- Add database file creation step to deployment instructions
- Fix Caddyfile download to go directly to /etc/caddy/Caddyfile
- Update step numbering in deployment script

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-06 18:33:08 -04:00
Claude Code
70deab5bbf Update deployment script and documentation
- Add S3 bucket support with fallback to ice-puremichigan-lol
- Update deployment script to handle both S3 and local file copying
- Support custom S3 bucket via S3_BUCKET_NAME environment variable
- Update HTTPS clone URL in README and deploy.sh
- Improve CLAUDE.md with single test execution instructions
- Update deployment paths to use /opt/icewatch

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-06 18:08:44 -04:00
Claude Code
8f7c805cd9 Update deployment script to use /opt/icewatch directory
- Change app directory from /opt/great-lakes-ice-report to /opt/icewatch
- Update system user from great-lakes-ice-report to icewatch
- Update service file name to icewatch.service
- Update all paths and references throughout the script

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-06 17:40:34 -04:00
Claude Code
ad6cc45328 Add x86_64 support to deployment script
- Add architecture detection for both ARM64 and x86_64
- Dynamically download correct Go binary based on architecture
- Add debug output to show detected architecture
- Handle 32-bit ARM with clear error message
- Update script header to indicate multi-architecture support

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-06 17:31:10 -04:00
7a09abfcb3 Merge branch 'main' into fix/deployment-documentation 2025-07-06 20:10:28 +03:00
Claude Code
84b0fe9e93 Fix deployment documentation and scripts for TypeScript setup
- Update deployment instructions to properly compile TypeScript
- Fix systemd service to run dist/server.js instead of server.js
- Standardize on /opt/icewatch as installation directory
- Change icewatch user to have bash shell for easier management
- Add explicit database creation steps
- Create quick deployment guide for simplified setup
- Update README with corrected deployment steps
- Fix all references from various names to consistent 'icewatch'

This ensures the /table route and all TypeScript features work correctly
after deployment by running the compiled JavaScript output.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-06 12:56:48 -04:00
Deco Vander
6661fff1b9 Apply suggestions from code review
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-07-06 00:49:25 -04:00
Claude Code
c13b61cd03 Add Progressive Web App functionality
- Add web app manifest for home screen installation
- Implement service worker with offline caching strategy
- Create offline fallback page with auto-reconnect
- Generate PWA icons in multiple sizes (72px-512px)
- Add PWA meta tags and Apple Touch icons to all pages
- Register service worker with graceful degradation
- Update documentation with PWA installation instructions
- Add browserconfig.xml for Windows tile support

Features:
- Installable on mobile and desktop
- Offline functionality with cached resources
- App-like experience in standalone mode
- Automatic updates when online
- Works seamlessly with existing progressive enhancement

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-06 00:46:00 -04:00
Deco Vander
e1be90011e Consolidate theme toggle styles and update repository references
- Extract duplicated theme-toggle styles into shared mixin (theme-toggle-styles)
- Remove duplicate CSS across privacy.scss, admin.scss, index.scss, and main.scss
- Apply mixin consistently to .theme-toggle, .theme-toggle-admin classes
- Update git repository references from GitHub to git.deco.sh
- Update README.md, privacy.html, and deploy script URLs
- Build optimized CSS with consolidated styles
2025-07-04 16:25:25 -04:00
Deco Vander
d9559f71fe Update HTML files to use Bunny.net CDN for static assets
- Updated all static asset URLs to use iceymi.b-cdn.net CDN
- Changed favicon, CSS, and JS file references in index.html, admin.html, and privacy.html
- API calls remain pointed to origin server for dynamic content
- Ready for CDN deployment with proper cache separation
2025-07-03 20:44:16 -04:00
Deco Vander
12fd378e8c Fix CSP to allow Leaflet marker icons from unpkg.com
- Updated Content-Security-Policy img-src directive to include unpkg.com
- Resolves CSP violation preventing Leaflet marker icons from loading
- Maintains security while allowing necessary external image resources
2025-07-03 01:24:51 -04:00
Deco Vander
3581ea219d Fix rate limiting block syntax for caddy-ratelimit plugin
- Use proper rate_limit block syntax with key, rate, and window
- Rate 30 requests per minute for general API
- Rate 5 requests per minute for location submissions
- Should resolve 'wrong argument count' error
2025-07-03 01:00:07 -04:00
Deco Vander
118261a0bd Fix duplicate @submit matcher in Caddyfile
- Combined @submit matcher conditions into single block
- Fixed 'matcher is defined more than once' error
- Proper Caddyfile syntax for combining path and method matchers
2025-07-03 00:58:30 -04:00
Deco Vander
18fb9e5a73 Fix rate limiting syntax in Caddyfile
- Simplified rate limiting syntax to use 30r/m and 5r/m format
- Fixed matcher syntax for submission rate limiting
- Should resolve 'wrong argument count' error in Caddy
- Compatible with caddy-ratelimit plugin syntax
2025-07-03 00:56:26 -04:00
Deco Vander
c95d159a95 Install Caddy with rate limiting plugin for ARM64 deployment
- Install Go 1.21.5 for ARM64 architecture
- Use xcaddy to build Caddy with caddy-ratelimit plugin
- Create custom systemd service for plugin-enabled Caddy
- Restore rate limiting configuration in Caddyfile
- Production-ready setup with proper security and rate limiting
- Automatic SSL with enhanced protection against API abuse
2025-07-03 00:44:29 -04:00
Deco Vander
3d3eb2fd3b Enhance Caddyfile with explicit HTTPS and security features
- Added explicit HTTP to HTTPS redirects for clarity
- Improved security headers including CSP for MapBox/OSM
- Added health checks for reverse proxy
- Implemented rate limiting for API protection
- Added structured logging for security monitoring
- Enhanced compression with gzip and zstd
- Comprehensive www/non-www redirect handling
- Production-ready configuration for ICE Watch
2025-07-03 00:31:41 -04:00
Deco Vander
c203cdcbeb Update clone URLs to use SSH and correct repository name
- Changed all git clone URLs to use SSH (git@github.com:)
- Fixed repository name to derekslenk/ice (correct repo name)
- Updated both deployment script and README
- Provides better security for server deployments
2025-07-03 00:24:01 -04:00
Deco Vander
0af3b7eeea Update service user and group for icewatch service 2025-07-03 00:19:40 -04:00
Deco Vander
e35eb6c788 Update deployment instructions and service user/group 2025-07-03 00:14:42 -04:00
Deco Vander
5b9c9f7396 Fix S3 bucket name and create deployment bucket
- Created S3 bucket: ice-puremichigan-lol
- Updated all references to use correct bucket name
- Applied public access policy for scripts/* path
- Ready for automated deployment via GitHub Actions
2025-07-03 00:02:52 -04:00
Deco Vander
e58e89ac72 Update S3 paths to use scripts folder with proper permissions
- Changed deployment URLs from /icewatch to /scripts
- Added cache control headers for better performance
- Updated bucket policy for scripts/* public access
- All deployment files now use consistent scripts/ path
2025-07-03 00:00:02 -04:00
Deco Vander
38ccd6d533 Update deployment URLs to use ice.puremichigan.lol S3 bucket
- Updated deployment script S3 URLs
- Updated README with correct bucket name
- Ready for automated S3 deployment via GitHub Actions
2025-07-02 23:57:27 -04:00
Deco Vander
08a8ded5f9 Add GitHub Actions workflow for S3 deployment
- Automated deployment script upload to public S3 bucket
- Uses GitHub OIDC for secure AWS authentication
- Updates README with current S3 URLs automatically
- Enables deployment from private repository
- Uploads systemd service and Caddyfile configurations
2025-07-02 23:56:18 -04:00
Deco Vander
edfdeb5117 Initial commit: ICE Watch Michigan community safety tool
- Node.js/Express backend with SQLite database
- Interactive map with real-time location tracking
- MapBox API integration for fast geocoding
- Admin panel for content moderation
- 24-hour auto-expiring reports
- Deployment scripts for Debian 12 ARM64
- Caddy reverse proxy with automatic HTTPS
2025-07-02 23:27:22 -04:00