Build better maybe.

master
Manager Bot 3 years ago
parent 85a1a4270d
commit 0071f3c427
  1. 45
      Web/lib/MJB/Web/Task/InitializeBlog.pm

@ -1,8 +1,9 @@
package MJB::Web::Task::InitializeBlog;
use Mojo::Base 'MJB::Web::Task', -signatures;
use Mojo::File qw( curfile );
use Mojo::File qw( curfile tempfile );
use File::Copy::Recursive qw( dircopy );
use IPC::Run3;
use MJB::Backend::Nginx::DomainConfig;
# This needs to do all of the things:
# 1 - Make nginx config
@ -15,7 +16,28 @@ sub run ( $job, $blog_id ) {
my $blog = $job->app->db->blog( $blog_id );
$job->app->nginx->provision_website( $blog->domain->name );
my $config_content = MJB::Backend::Nginx::DomainConfig->new(
domain => $blog->domain->name,
ssl_domain => $blog->domain->name,
)->config;
my ( $config, $welcome ) = ( tempfile, tempfile );
$config->spurt ( $config_content );
$welcome->spurt( "Your new blog is being setup... please reload soon." );
foreach my $host ( @{$job->app->db->servers->all} ) {
my $server = 'root@' . $host->hostname;
my $domain = $blog->domain->name;
$job->system_command( [ 'scp', $config->to_string, $server . ":/etc/nginx/sites-enabled/" . $domain ] );
$job->system_command( [ 'ssh', $server, 'mkdir -p /var/www/' . $domain . '/html' ] );
$job->system_command( [ 'scp', $welcome->to_string, $server . ":/var/www/" . $domain . "/html/index.html" ] );
$job->system_command( [ 'ssh', $server, 'chown -R www-data:www-data /var/www/' . $domain ] );
$job->system_command( [ 'ssh', $server, 'systemctl reload nginx' ] );
}
# $job->app->nginx->provision_website( $blog->domain->name );
$job->app->sync_blog( $blog );
@ -26,4 +48,23 @@ sub run ( $job, $blog_id ) {
}
# my $config = MJB::Backend::Nginx::DomainConfig->new(
# domain => $domain,
# ssl_domain => $ssl_domain,
# )->config;
#
# my $config_file = tempfile;
# $config_file->spurt( $config );
# my $welcome_file = tempfile;
# $welcome_file->spurt( "Your new blog is being setup... please reload soon." );
#
# foreach my $server ( @{$self->servers} ) {
# $self->system_command( [ 'scp', $config_file->to_string, $server . ":/etc/nginx/sites-enabled/" . $domain ] );
# $self->system_command( [ 'ssh', $server, 'mkdir -p /var/www/' . $domain . '/html' ] );
# $self->system_command( [ 'scp', $welcome_file->to_string, $server . "/var/www/" . $domain . "/html/index.html" ] );
# $self->system_command( [ 'ssh', $server, 'chown -R www-data:www-data /var/www/' . $domain ] );
# $self->system_command( [ 'ssh', $server, 'systemctl reload nginx' ] );
# }
1;

Loading…
Cancel
Save