Static Pages
Static Pages (hereinafter the βApplicationβ) is a collection of static HTML pages and related data/scripts for various small web utilities and content sections. The application provides interactive explorers for books and music libraries, product directories, games, chat services, testimonials, and other utility pages. It is designed to be easily synchronized to a production server using shell scripts and requires no backend or dynamic server-side logic.
1. User Documentation
The Application provides several interactive web utilities:
Book Library
Visit at https://books.nhcarrigan.com
An interactive explorer for Naomiβs book collection. Users can browse and search through the library of books with filtering capabilities by author. The interface displays book titles and authors extracted from digital book files.
Music Library
Visit at https://music.nhcarrigan.com
An interactive explorer for Naomiβs music collection. Similar to the book library, users can browse and search through songs with filtering by artist. The interface displays song titles and artists extracted from audio file metadata.
Games
Visit at https://games.nhcarrigan.com
A landing page showcasing various games developed by NHCarrigan, including links to the Beccalia Series and other game projects.
BlueSky Handle Generator
Visit at https://naomi.party
A service page for provisioning custom Bluesky handles under the naomi.party domain. Currently requires manual processing through the Discord support server.
Testimonials
Visit at https://testimonials.nhcarrigan.com
A showcase page displaying testimonials from past clients about NHCarriganβs work and services.
Link Redirector
Visit at https://nhcarrigan.link
A utility page that serves as a fallback for improperly configured subdomain redirects, providing users with support contact information.
This section is for those interacting with a live instance of the Application.
User Manual
Visit at https://manual.nhcarrigan.com
A brief description of what it is like to work with Naomi, and how to cultivate an environment where she can thrive.
2. Technical Documentation
System Requirements
- Unix-like operating system (Linux/macOS)
- Bash shell
rsync
for deploymentexiftool
for extracting book metadatamid3v2
for extracting music metadatajq
for JSON processing- Access to Gitea API (for products functionality)
- Web server capable of serving static files
Project Structure
βββ books/ # Book library interfaceβ βββ index.html # Main book explorer pageβ βββ books.json # Generated book dataβββ music/ # Music library interfaceβ βββ index.html # Main music explorer pageβ βββ songs.json # Generated music dataβββ products/ # Product directoryβ βββ index.html # Product listing pageβ βββ data.json # Generated product dataβββ games/ # Games showcaseβββ bsky/ # BlueSky handle serviceβββ testimonials/ # Client testimonialsβββ link-redirector/ # Redirect fallbackβββ mail/ # Mail service (manual sync)βββ manual/ # Manual/documentationβββ sitemap/ # Site navigationβββ books.sh # Book data generator scriptβββ songs.sh # Music data generator scriptβββ products.sh # Product data generator scriptβββ sync.sh # Deployment script
Data Generation Scripts
Book Library (books.sh
)
- Scans
/home/naomi/cloud/Books
directory for book files - Extracts title and author metadata using
exiftool
- Generates
books/books.json
with book data - Handles files without metadata by using filenames
Music Library (songs.sh
)
- Scans
/home/naomi/music
directory for audio files - Extracts title and artist metadata using
mid3v2
- Generates
music/songs.json
with song data - Falls back to filename parsing for missing metadata
Product Directory (products.sh
)
- Fetches repository data from Gitea API
- Organizes projects by category (public, games, private, archived)
- Generates
products/data.json
with project information - Requires
GITEA_TOKEN
environment variable
Deployment
The deployment process uses sync.sh
which:
- Syncs all directories to production server using
rsync
- Targets
prod:/home/nhcarrigan
for most content - Requires manual sync for
mail/index.html
tomail:/home/user-data/www/default
Deployment Command:
./sync.sh
Running Your Own Instance
-
Clone the repository
-
Install dependencies:
Terminal window # Ubuntu/Debiansudo apt install exiftool python3-mutagen jq rsync# macOSbrew install exiftool jq rsyncpip3 install mutagen -
Configure data sources:
- Update paths in
books.sh
for your book collection - Update paths in
songs.sh
for your music collection - Set
GITEA_TOKEN
environment variable for products functionality - Modify
products.sh
with your Gitea instance URL and organizations
- Update paths in
-
Generate data:
Terminal window ./books.sh # Generate book library data./songs.sh # Generate music library data./products.sh # Generate product directory data -
Serve static files:
Terminal window # Simple Python server for testingpython3 -m http.server 8000 -
Deploy to production:
- Modify
sync.sh
with your server details - Ensure SSH key authentication is configured
- Run
./sync.sh
- Modify
This section is for those interested in running their own instance of the Application.
3. Legal Documentation
The Application operates under NHCarriganβs standard legal framework:
License
This software is licensed under the global software license. Copyright is held by Naomi Carrigan.
Privacy Policy
Privacy considerations for the Application are covered under the global privacy policy.
Terms of Service
Terms of service for the Application are outlined in TERMS.md.
Code of Conduct
All interactions with the Applicationβs community and codebase are governed by the Code of Conduct, referenced in CODE_OF_CONDUCT.md.
Security Policy
Security reporting and handling procedures are documented in SECURITY.md.
Data Handling
- Book Library: Processes local book file metadata only
- Music Library: Processes local music file metadata only
- Product Directory: Fetches public repository information from Gitea API
- BlueSky Service: Collects handle requests through Discord (manual process)
- No personal data: The Application does not collect or store personal user data directly
This section is for expansions to our legal policies specific to the Application.
4. Contributing Documentation
Getting Started
Contributors should review the global contributing guidelines referenced in CONTRIBUTING.md.
Development Workflow
-
Fork and Clone
Terminal window git clone https://github.com/your-username/Static Pages.gitcd Static Pages -
Set Up Development Environment
- Install required dependencies (see Technical Documentation)
- Configure data source paths for testing
- Set up environment variables if working with products functionality
-
Making Changes
- HTML Pages: Edit individual
index.html
files in respective directories - Data Scripts: Modify
*.sh
scripts for data generation logic - Deployment: Update
sync.sh
for deployment configuration changes
- HTML Pages: Edit individual
-
Testing Changes
Terminal window # Test data generation./books.sh./songs.sh./products.sh# Test locallypython3 -m http.server 8000 -
Submitting Changes
- Create feature branch:
git checkout -b feature/your-feature
- Commit changes with descriptive messages
- Push to your fork and create a Pull Request
- Ensure all data generation scripts work correctly
- Create feature branch:
Code Style Guidelines
- HTML: Use semantic HTML5 elements, include proper meta tags
- Shell Scripts: Follow bash best practices, include error handling
- JSON Data: Ensure proper formatting and validation
- Documentation: Update relevant documentation for new features
Areas for Contribution
- UI/UX Improvements: Enhance styling and user experience of static pages
- Data Processing: Improve metadata extraction and data generation scripts
- New Features: Add new utility pages or improve existing functionality
- Documentation: Expand user guides and technical documentation
- Testing: Add validation and testing for data generation processes
- Accessibility: Improve accessibility compliance across all pages
Communication
- Issues: Report bugs and request features through GitHub Issues
- Support: Join the chat server for discussion
- Contact: Reach out via email at
[email protected]
Review Process
All Pull Requests are reviewed for:
- Code quality and adherence to project standards
- Functionality and testing
- Documentation updates
- Security considerations
- Compatibility with existing deployment process