Esempio n. 1
0
        private void OnExecute(IConsole console)
        {
            var dirPath          = Environment.CurrentDirectory;
            var dirName          = Path.GetFileName(dirPath);
            var defaultExtension = Config.Get("App", "VhostExtension");
            var givenDomain      = dirName.ToLower() + defaultExtension;

            if (Domain != null)
            {
                givenDomain = Domain;
            }

            // TODO: fix domain tld validator
            if (!Utilities.IsValidDomainName(givenDomain))
            {
                ColorizeConsole.PrintlnError($"\n> Please specify a valid domain name!\n");
                return;
            }

            var vhostFile = VirtualHost.ApacheVhostDir + @"\" + givenDomain + ".conf";

            if (File.Exists(vhostFile))
            {
                ColorizeConsole.PrintlnError($"\n> VirtualHost already exists!\n");
                return;
            }

            ColorizeConsole.PrintlnInfo($"\n> Creating virtualhost ...");
            VirtualHost.CreateCert(givenDomain);
            VirtualHost.CreateVhost(givenDomain, dirPath.Replace("\\", "/"));
            if (DnsHostfile.IsNotExists(givenDomain))
            {
                DnsHostfile.AddRecord(givenDomain);
            }

            // TODO: services restart command still not working
            // ColorizeConsole.PrintlnInfo($"\n> Reloading services ...");
            // Services.Reload(References.ServiceNameHttp);
            // Task.Delay(TimeSpan.FromSeconds(5));

            ColorizeConsole.PrintlnSuccess($"\n> Virtualhost has been created, please restart Varlet services in VarletUi!");
            ColorizeConsole.PrintlnWarning($"> Your site will be available at: http://{givenDomain} and https://{givenDomain}\n");
        }
Esempio n. 2
0
        private void OnExecute(IConsole console)
        {
            var dirPath          = Environment.CurrentDirectory;
            var dirName          = Path.GetFileName(dirPath);
            var defaultExtension = Config.Get("App", "VhostExtension");
            var givenDomain      = dirName.ToLower() + defaultExtension;

            if (Domain != null)
            {
                givenDomain = Domain;
            }

            // TODO: fix domain tld validator
            if (!Utilities.IsValidDomainName(givenDomain))
            {
                ColorizeConsole.PrintlnError($"\n> Please specify a valid domain name!\n");
                return;
            }

            var vhostFile = VirtualHost.ApacheVhostDir + @"\" + givenDomain + ".conf";

            if (!File.Exists(vhostFile))
            {
                ColorizeConsole.PrintlnWarning($"\n> VirtualHost doesn't exists!\n");
                return;
            }

            ColorizeConsole.PrintlnInfo($"\n> Removing virtualhost ...");
            File.Delete(vhostFile);
            if (!DnsHostfile.IsNotExists(givenDomain))
            {
                DnsHostfile.DeleteRecord(givenDomain);
            }

            // ColorizeConsole.PrintlnInfo($"\n> Reloading services ...");
            // Services.Reload(References.ServiceNameHttp);
            // Task.Delay(TimeSpan.FromSeconds(5));

            ColorizeConsole.PrintlnSuccess($"\n> Your site has been removed, please restart Varlet services in VarletUi!\n");
        }
Esempio n. 3
0
        private static void AutoGenerateVhost()
        {
            // Remove old vhost
            var files = (new DirectoryInfo(VirtualHost.ApacheVhostDir)).GetFiles("auto.*.conf");

            foreach (var file in files)
            {
                var domain = file.Name.Replace("auto.", "").Replace(".conf", "");
                if (!DnsHostfile.IsNotExists(domain))
                {
                    DnsHostfile.DeleteRecord(domain);
                }
                File.Delete(file.FullName);
            }

            // Generate auto virtualhost
            var wwwDir = Config.Get("App", "DocumentRoot");

            if (!Directory.Exists(wwwDir))
            {
                return;
            }
            foreach (var dir in Directory.GetDirectories(wwwDir))
            {
                var dirName = Path.GetFileName(dir);
                var dirPath = wwwDir + @"\" + dirName;
                var domain  = dirName + Config.Get("App", "VhostExtension");
                VirtualHost.CreateCert(domain);
                VirtualHost.CreateVhost(domain, dirPath, true);
                if (DnsHostfile.IsNotExists(domain))
                {
                    DnsHostfile.AddRecord(domain);
                }
            }
            VirtualHost.SetDefaultVhost();
            System.Threading.Thread.Sleep(TimeSpan.FromSeconds(5));
        }