|
|
|
|
@ -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; |
|
|
|
|
|