Private
Public Access
1
0

Initial commit: complete WebsiteBox project

Docker-based self-hosted WordPress deployment system with:
- Four-container stack (nginx, wordpress/php-fpm, mariadb, certbot)
- Automatic SSL via Let's Encrypt with self-signed fallback
- First-boot WordPress setup via WP-CLI (GeneratePress + child theme, plugins)
- Interactive setup wizard and one-line install script
- Backup, update, healthcheck, and SSL renewal scripts

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
constantprojects
2026-02-20 15:24:23 -07:00
commit a440026701
32 changed files with 3397 additions and 0 deletions

View File

@@ -0,0 +1,37 @@
<?php
/**
* WebsiteBox Child Theme Functions
*/
if (!defined('ABSPATH')) {
exit;
}
// Enqueue parent theme styles
add_action('wp_enqueue_scripts', function () {
wp_enqueue_style(
'generatepress-parent',
get_template_directory_uri() . '/style.css',
[],
wp_get_theme('generatepress')->get('Version')
);
wp_enqueue_style(
'websitebox-child',
get_stylesheet_uri(),
['generatepress-parent'],
wp_get_theme()->get('Version')
);
});
// Remove GeneratePress footer branding
add_filter('generate_copyright', function () {
return '';
});
// Set portfolio-friendly defaults
add_action('after_setup_theme', function () {
add_theme_support('post-thumbnails');
set_post_thumbnail_size(1200, 800, true);
add_image_size('portfolio-thumb', 600, 400, true);
add_image_size('portfolio-full', 1920, 1080, false);
});

View File

@@ -0,0 +1,13 @@
<?php
// Silence is golden. GeneratePress handles all template rendering.
// This file exists only because WordPress requires index.php in every theme.
get_header();
if (have_posts()) :
while (have_posts()) : the_post();
get_template_part('content', get_post_type());
endwhile;
the_posts_navigation();
else :
get_template_part('content', 'none');
endif;
get_footer();

View File

@@ -0,0 +1,12 @@
/*
Theme Name: WebsiteBox
Theme URI: https://github.com/websitebox/websitebox
Description: A clean portfolio child theme for WebsiteBox, built on GeneratePress.
Author: WebsiteBox
Author URI: https://github.com/websitebox/websitebox
Template: generatepress
Version: 1.0.0
License: GNU General Public License v3 or later
License URI: https://www.gnu.org/licenses/gpl-3.0.html
Text Domain: websitebox
*/

View File

@@ -0,0 +1,66 @@
{
"$schema": "https://schemas.wp.org/trunk/theme.json",
"version": 3,
"settings": {
"color": {
"palette": [
{
"slug": "primary",
"color": "#1a1a2e",
"name": "Primary"
},
{
"slug": "secondary",
"color": "#16213e",
"name": "Secondary"
},
{
"slug": "accent",
"color": "#e94560",
"name": "Accent"
},
{
"slug": "light",
"color": "#f8f9fa",
"name": "Light"
},
{
"slug": "dark",
"color": "#0f0f1a",
"name": "Dark"
}
]
},
"typography": {
"fontSizes": [
{
"slug": "small",
"size": "0.875rem",
"name": "Small"
},
{
"slug": "medium",
"size": "1rem",
"name": "Medium"
},
{
"slug": "large",
"size": "1.5rem",
"name": "Large"
},
{
"slug": "x-large",
"size": "2.25rem",
"name": "Extra Large"
}
]
},
"spacing": {
"units": ["px", "em", "rem", "%", "vh", "vw"]
},
"layout": {
"contentSize": "1200px",
"wideSize": "1400px"
}
}
}