diff --git a/Web/lib/MJB/Web/Task/InitializeBlog.pm b/Web/lib/MJB/Web/Task/InitializeBlog.pm index 7c50718..26a8725 100644 --- a/Web/lib/MJB/Web/Task/InitializeBlog.pm +++ b/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;