slickstack Lightning-fast WordPress on Nginx开源项目

我要开发同款
匿名用户2021年11月09日
47阅读
开发技术SHELL
所属分类终端/远程登录、应用工具
授权协议GPL-3.0 License

作品详情

SlickStack(Beta)

SlickStackisafreeLEMPstackautomationscriptwritteninBashdesignedtoenhanceandsimplifyWordPressprovisioning,performance,andsecurity.

Matrix/Elementroom(public)DiscordserverSkypegroupchatWhatToExpectPageSpeedGTMetrixPingdomSecHeadersSSLLabsWebPageTestImmuniWebAAAAAAACoreModules

Lastupdated:Sep9,2021

LEMPModuleMirrorsVersionWhatdoesSlickStack[ss]customize?UbuntuLTSmirrors20.04crontab+gai.conf+sshd_config+sudoers+sysctl.confNginxmirrors1.18.xnginx.conf+serverblocksOpenSSLmirrors1.1.1xslickstack.crt+slickstack.key+dhparam.pemLetsEncryptmirrors0.40.xcert.perm+chain.pem+fullchain.pem+privkey.pemMySQLmirrors8.0.xmy.cnfPHP-FPMmirrors7.4.xphp.ini+php-fpm.conf+www.confRedismirrors5.0.xredis.conf+object-cache.phpWordPressmirrors5.8.1someWPCorejunkfilesareremovedbyss-cleanWP-CLImirrors2.5.0defaultconfigAdminermirrors4.8.1defaultconfigGitmirrors2.25.xdefaultconfigUFWFirewallmirrors0.36ufw+ufw.conf+user-rulesClamAVmirrors0.102.xfreshclam.confRclonemirrors1.50.xrclone.confChangelog

NEW!ss-sync-staginghasnowbeenfixedtoworkproperlywiththenewsubdomainanddedicateddatabaseapproachwe'vesettledonforstagingsites.So,nowthisscriptwillbrieflyduplicatetheMySQLdatabasedump(thatss-dump-databasegenerates)anduploadittothestagingdatabase.ThenthisscriptwillrsyncallfilesfromproductiontostagingdirectorybutNOTthemediauploads,whichstagingautomagicallyloadsfromtheproductiondirectoryusingNginxmagic.

NEW!ss-dump-filescannowexport/archiveyourdev/stagingsitesifyouenableinss-config(alongwithproductionsite).

NEW!Staginganddevsites(subdomains)cannowbepasswordprotectedandanewuserGUEST_USERandGUEST_PASSWORDissupportedwhocanloginandvieweithersite.

NEW!Youcannowpreventss-clean-filesfromdeletingorcleaningWordPressfilesifyouprefernotusingthenewss-configoptionsSS_CLEAN_FILES_WORDPRESS_PLUGINSandSS_CLEAN_FILES_WORDPRESS_THEMESandSS_CLEAN_FILES_WORDPRESS_CONTENT...

NEW!ss-optimize-fileswillnowstripEXIFdatafromallpublicJPEGandJPGfilesunder/var/www/htmlforsecurityandprivacyreasons.

NEW!Staging/devsitesarenowworking!Thisisstillexperimentalandneedsmorereviewofallsettingssopleasekeepthatinmindandpleaseofferyourdetailedfeedbacktoourteaminthechatroomssowecangetthisfeaturetotallystable...woohoo!

NEW!Dedicatedscriptss-install-mysql-databasebeingcreatedforbetterstaging/dev/prodclarity.Willupdatethisdescriptionsoon.

NEW!Staging/Devpreparationcontinues:ss-install-clean-fileswillnowdeletenon-productionNginxserverblocksifstaging/devaresettofalseinyourss-configandwillalsodelete/stagingand/devdirectorieswithinthoseconditions,too.ss-install-nginx-configwillonlyinstallstaging/devblocksgoingforwardifstag/devareexplicitysettotrueinyourss-config.ss-install-wordpress-corewillonlyinstallWordPresstostaging/devdirectorieswithinthoseconditions,too.Likewisethestaging/devdirectorieswillbeauto-createdfromavarietyofmethodsifsettotrueinyourss-config.

NEW!Amajornew(experimental)featureiscalledtheSlickStackpilotfile.Thisfilecanbespecified(linked)duringnewinstallationsusingthesetupwizard,and/orwithinyourss-configfile.Thepurposeofthepilotfileistoallowteamstoeasily/rapidlycustomizesettingsacrossalltheirSlickStackserversusingafilethatcanberetrievedfromthepublicwebe.g.viaSecretGistfilesonGitHub,etc.ForexampleyourteamcouldchangeaPHPsettingacross100+serverswithin5-10minutesorlessbyusingthepilotfile.Weareexcitedaboutthisfeaturebutalsocautiousaboutsecurity,sopleaseofferyourfeedbackregardingwhichsettingsyouthinkweshouldsupportornotsupportwhenitcomestothenewpilotfileconcept.

NEW!Thescriptss-dump-filesisnowfunctional,andwillTARgzipyourentirehtmldirectoryto/var/www/backups/html/export.tar.gzwheneverrun...bydefaultwewillnotenablethisscriptonanycronschedulebecausemanyserversmightnothavethespaceforit.

NEW!SSHkeysarenowfinallyworking!Weareusinga"centralized"authkeysfiletoavoiddatalossandforeasiermanagementandbackuppurposes.Thepublickeyfileislocatedunder/var/www/auth/authorized_keysandaprivate/publickeypairwillbegeneratedautomaticallyforyouduringss-installand/orss-install-ubuntu-ssh...theprivatekeywillautomaticallybedeletedafterafewhours,andthepublickeyisautomaticallyinstalledforyou.Attheendofthess-installprocess(whenitrunsss-stack-overview)theshellwilldisplayyourprivatekeyhashbrieflysoyoucancopyittoyourlocalcomputer.Pleasenotethatyoucanuseadifferentkeypairifyouprefer,justbesuretouploadyourpublickeyfileto/var/www/auth/id_rsa.pubbeforess-installruns.Wearelookingforfeedbackonourcurrentdefaultsettingsinsshd_configsopleaseletusknowifyou'reanSSHguru!

NEW!Supportforthird-partySSLcertificatesishere,bypopulardemand!Wehavenottestedthis,butitshouldnowwork.Forthoseinterestedinusingthird-partySSLpleasetestthefeatureandofferusyourfeedback.Youwillneedtouploadyourcertbundleto/var/www/certs/thirdparty.pemandyourprivatekeyto/var/www/certs/keys/thirdparty.key...ifanyconflictsorproblemspleasetellussowecanexpandfeatureshereasrequired.

NEW!Earlysupportforwhitelabelbrandingnowexists,atleastforchangingtheWPAdminmenunamefrom"SlickStack"toanameyouchoose,suchasyouragency'sname,usingthenewss-configvariableWHITELABEL_BRAND...thisvariablewilllikelybeusedelsewhere,inthefuture.

NEW!ss-install-php-packageswillnowverifythatyour"custom"PHPextensionsarethecorrectversioninss-configbeforeinstallingthem,otherwiseitwillreverttousingourdefaultPHPextensions.We'vealsocleanedupthescripttobeginourgoalofautomaticcompatibilitywithanyUbuntuLTS(andPHP)versionsothatSlickStackwillautomaticallyinstallthedefaultPHPversionpreferredbyeachUbuntuLTSversion.Atthistime,wehavenoplanstosupportmultiplePHPversionsperserverornon-standardPHPversionsperserver,sincepredictabilityisamajorgoalforus.

NEW!Moregenericfilenamesnowexistbydefaultfordatabasedumps,andwehaveprepared(notfullysupportedyet)tosupportdumpinganyofthe3databasese.g.production.sql,staging.sql,anddevelopment.sqlintothe/var/www/backups/mysql/directorywheneverss-dump-databaseruns.Keepinmindthatbydefaultonlytheproductiondatabasewillbedumpedatscheduledintervals.Forlargedatabases,besureyouhavediskspace!

NEW!WehavedecidedtonotproceedwithsupportforPostfix(emailmodule)atthistime,probablyindefinitely.Therearetoomanysecurityandconfigurationissuestoworryaboutandmaintain.Also,moderncloudplatformshavetheirownemailalertsystemsinplaceforserverresources,sothereislessreasontosupporttheserverOStobeabletosendoutemailalerts(whichwasthemainreasonwewereconsideringPostfixsupport).Alternatively,wewillcontinuetoimprovetheSlickStackpanelinWPAdminwhichmayeventuallysupporthavingWordPresssendingoutemailalertsbasedonSLickStackstatusreports.

NEW!Theself-signedOpenSSLcertificatehasbeenmodernizedtouse4096bitkey(previouslyonly2048)andtosupportthefullarrayofdomainnamesrequiredbyatypicalSlickStackserverincludingexample.com,www.example.com,staging.example.com,anddev.example.com(previouslyjustasingleFQDN).ThisimprovementiscrucialtopreparingSlickStacktoproperlyandsecurelyhandlestagingsites,etc.GoingforwardSlickStackwillassume:nosubdirectoryinstalls,staging/devsubdomainsareALWAYSsub-FQDNmeaningifyouinstallSSonasubdomainlikeblog.example.comthestagingsitewillONLYsupportstaging.blog.example.com.ItwillbeyourresponsibilitytoupgradeCloudflare(etc)toensurepropersupportforsub-subdomainsattheproxylevel.TheabilityforSlickStacktoproperlyredirecte.g.reverseIPaddressor(non)wwwqueriestocanonicalwilldependonyourteamconfiguringtheproperDNSrecords.

NEW!AnewvariableSS_DATABASE_REMOTEinthess-confignowindicateswhetheryouroriginserverisusingaremoteMySQLdatabaseornot.Ifthisvariableissettotruethanss-installwillskipinstallationofMySQLmoduleontheoriginserver.

NEW!AllNginxserverblocksarenowinstalledunder/var/www/sitesinsteadofthedefaultDebianfolder/etc/nginx/sites-availableand/or/etc/nginx/sites-enabled...thismeansthatyoucannoweasilybackupyourserverblocksbysettingyourremoteSFTPbackupservicetosynceverythingunderthe/var/www/parentdirectory...italsomeansonemorethingyoudon'tneedtocdaroundLinuxtofindanymore...sinceSlickStackonlysupportsasingledomainandeverythingisautomatedusingourss-configsettings,therewasnoneedtokeeptheDebianapproachtoNginxserverblocksanymore.

NEW!DuetotimeoutsfromGitHubservers,somewgetcallshaveresultedinbrokenSSfilesinrecentmonths,oftentotallybreakingwebsitesthatarehostedonSSservers.Wearebeginningaprocessofimplementingfail-safefeaturesinallourcronjobsandscriptssothatiffilesareretrievedfromGitHubthatdonotcontainaspecificstringSS_EOFthenthefileisassumedcorruptandtheinstalltask(etc)isskipped.Pleaseofferyourfeedbackforhowtobestimplementthisprocessoralternativeideasforavoidingfilecorruptionduetowgettimeoutsandrelatedissues,thanks!

NEW!OrganizationofourGitHubrepoisnowcompletewithamucheasierstructuretounderstand.Allbashscriptsareunderthebashfolderandallcronjobsareunderthecronsfolder...customcronjobtemplatescanbefoundunderthe/crons/custom/folder.TherestofLEMPstackmoduleconfigboilerplatescanbefoundintherelevantchildfoldersundermodulesfolder...thisshouldmakethingsmuchsimplertobrowsegoingforward.

NEW!Ifyouhavenoticedproblemsbeforewithsscorecronjobsorsscorebashscriptsbeingsuddenly"null"(emptyofcontent)andthusyourentirestackbecomingfrozenoutofreceivingupdates...fearnot,wehavediscoveredthisisbecauseGitHubserverssometimestimeoutandresultinwgetoverwritingcorescriptswithblankfiles...tosolvethisproblempermanently,SlickStackcrontabwillnowforcefullyretrievesscorecronjobsafewtimeseachday,regardlessofsettingsinss-configandregardlessofifallyourotherfilesaredamagedormissing...amassiveimprovementtoyourSSserver'slongevity.

NEW!IfyouhavestruggledwithMySQL8.0performanceonsmallerservers,werealizedthatbinarylogging(nowenabledbydefault)sometimescreatesamassiveamountoffilesandexhaustsdiskspaceandotherwisehurtsperformance.Wehavenowdisabledthisfeaturebydefault,pleaserunss-install-mysql-configorreinstallyourSlickStackserverwithss-installifyouhaveproblemswithdiskspace.

NEW!Wehavechangedthewaycustomcronjobscanbeadded.Insteadofaddingtoss-configwhichwasratherjanky,youcannowcreateaseparatebashscriptunderthe/var/www/crons/custom/folderforeverysinglecustomcronjobyouwishtoactivate.Muchcleanerandstablewaytoruncustomjobs!

NEW!A2GBswapfileisnowinstalledbydefaultduetoissueswithMySQL8.0wehaveseenonlowmemoryVPSservers.ThenewswapfileshouldhelpguaranteestabilityandkeepMySQLfromcrashingduetointensiveprocesseslikeremotebackupandrestore(e.g.CodeGuard),etc.

NEW!Anotherlong-requestedfeatureishere,customWPcronschedulesusingtheserver...inourcase,youcanchangeWP_CONFIG_METHODtobeserverandthenSlickStackwilldisablewp-croninthewp-config.phpfilenexttimeyourunss-install-wordpress-configandourcorecronjobswillthentakeoverrunningWP-CRONontheintervalyouhavechosenusingWP_CRON_INTERVALinsideyourss-configfile...phew!

NEW!PHPextensionscannowbefullycustomizedusingthePHP_EXTENSIONSoptioninss-config.Remembertoincludethephp7.4-fpmextensionasitisNOTincludedbydefaultinourinstallationprocess(norareanyotherPHPextensions).Alsorememberthatphp7.4shouldNOTbeinstalledonLEMPstackservers,becauseallyouneedisthefpmextensionwhichincludesarerelevantdependencies.IfthePHP_EXTENSIONSoptionismissingorcommentedout,ourinstallerwillsimplychoosethemostcommonrequiredPHPextensionsforWordPressthatSlickStackrecommendsusing.

NEW!Customcronjobsarehere!Amuchrequestedfeatureisfinallyhere,andsimplerthanweexpected.SimplyedittheSS_CUSTOM_CRON_optionsinyourss-configfileinanicecentrallocationforallediting.ThesecustomcommandsshouldbewritteninnormalbashstyleandNOTcrontabsyntax,becausethesevariablesaresimplysourcedintooursscorecronjobfiles(bashscripts).

NEW!Defaultbashprompthasnowbeenprettifiedtoanicepinkcoloranddisplaysuser@hostname(FQDN)alongwiththecurrentworkingdirectory.Thishelpsimproveconsistencyacrosscloudnetworks,assomeproviderswillaltertheprompttosomethingunrecognizable.Wehavealsointroducedssaliascommands(notyetfullycomplete)sothatspaced-out-commandsnowwork.Insteadoftypingsudobash/var/www/ss-checkyoucannowsimplytypesscheckwhenloggedintoyourserverasthesudoorrootuser.Otherlongerexampleswillworksoonsuchasssinstallwordpressorsspermsnginx.

NEW!Wecontinuetosplitss-installandss-permsandss-purgeintosubscriptsforeasiermanagement,andwillprobablysplitafewothercorebashscriptsintosubscriptsaswelltocontinuefine-tuningscriptorganizationandnaming.Wealsocontinuetoaddmoreandmore"intervals"toss-configmeaningthatyoucanchoosewhentorunanyofthecorebashscriptsonthecronschedules(ornot)...therearetoomanytolisthere,sojustreviewthelatesttemplateforss-configtoseeallthelatestoptionsthatcanbeconfigured.Anewscriptss-reboothasalsobeenlaunchedtoautomateandscheduleserverreboots,ifdesired.

NEW!AnewvariableSS_PLUGIN_BLACKLISThasbeenaddedtoss-configoptionsthatcanbesetto"true"or"false"inordertoNULL(empty)theblacklist.txtfiletoeffectivelyturnoffthepluginblacklistfeature.WestillconsiderthatfiletobeacorefileforSlickStack,however,andthePluginBlacklistisadefaultMUpluginforSlickStackaswell,sowearenotgoingtoprovideadefaultwaytodeletethatfileforthetimebeing.InanycasethisnewoptionshouldmakeiteasierfordeveloperstosetupnewSSserverswithouthavingtoworryaboutmodifyingthedefaultMUpluginlist(ordefaultsourceURLforblacklist.txt).Thischangeisabitjanky,admittedly,andwewelcomeallfeedback...butfornow,itisasimpleandeasywaytoaddressthiscommonquestion.

NEW!WordPressCorewillnowbereinstalledautomaticallyevery2monthsasperthedefault"sometimes"cronjob...modifythisscheduleinss-configbyuseingtheSS_INTERVAL_INSTALL_WORDPRESS_COREvariable(ordisableitcompletely).WewillcontinuetoaddmoreintervalschedulessothateverycoreSSscriptcanbesettoautomaticallyrunonanyofour12corecronjobschedules!

NEW!Weareexperimentingwithanew"dashboard"thatletsadmin-levelWOrdPressuserseasilyreviewtheirSlickStackrelatedsettings...ifyouwanttodisablethisnewfeaturefornow,youcanrunss-updatetogetthelatestboilerplatethensetSS_DASHBOARDto"false"inss-configthenrunss-install-wordpress-configagainandthefeatureshouldthendisappear.

NEW!ThereisnowaninteractiveBashwizardwhenyourunss-installonSlickStackservers(newservers)thatdon'tyethavess-configfiles.ThishelpsadminssavetimeinsettingupnewLEMPstacksbysimplyrunningthruafewoptionsusingthewizardandproceedingwiththeinstallationprocesswithouthavingtospendanytimeconfiguringthess-configfilemanuallyaswaspreviouslyrequired.Thiswizardnowalsohas"defaults"forallprompts,meaningthatformostoptionsyoucansimplyhittheENTERkey(besidescriticalfieldslikeSITE_DOMAINorSITE_TLDandsoforth,whichalwaysrequireuniquevaluestobeinput).

NEW!WecontinuetobetterorganizeSlickStackfilenamesincludingvariousnewsub-scriptsthatcanberunindendentlyand/orsourcedwithinotherCorescripts.Forexample,ss-installhasbeenbrokendownintovariousscriptssuchasss-install-phpetc.ThismeansthatourGithubrepo(orthirdpartysysadmins)caneasilyreinstallthePHP-FPMmodulewithouthavingtogothroughtheentireinstallationprocess.ForbetterscalingandorganizingofCorecronjobs,wehavealsomovedtoadouble-digitprefixforallcronjobsstartingfrom00forcrontabandgoingupfromtheree.g.01-cron-...etc.ThismeansthatcronjobswillremainclearlyorderedwhileviewingthemintheshellterminalabovethecoredirectoriesandcoreBashscriptsinstalledbySlickStack.

NEW!Stagingsitesarenowincludedbydefaultonthe/staging/subdirectoryasaseparateWordPressinstallation...bydefault,weincludespecialMUpluginslikeDisableEmailsandDisableDefaultRunner(WooCommerceScheduler)andwealsodisableWPCronaswellaspartofourdistinctwp-configboilerplateforstagingsites...runningss-muplugsnowmanagesMUpluginsforbothproductionandstagingsites...andthenewss-syncscriptiswhatduplicatesallcontentfromproductiontostaging(includingthedatabasetohardcodedstaging_tables)...bydefaultss-syncwillrunevery12hours(half-dailycron)...stagingsitesarenowliveandactiveforallSlickStackenvironmentsbutstillconsideredBETAsopleaseofferfeedbackinourFacebook/Spectrumgroups...

NEW!ss-optimizeconvertsallMyISAMtablestoInnoDB,removesjunkSQLdata,andmore.Werecommendrunningthisscriptmanually,oronlyoccassionally,toavoidconfusionandtoallowforeasilyrestoringpotentialdataloss(althoughweareextremelycareful/limitedaboutremovingSQLdata).

NEW!(Experimental)SSHkeysarenowsupported(savepublickeyinto/var/www/meta/.ssh/authorized_keys)

NEW!WebrieflydisabledSQL_MODEinthemy.cnfboilerplateduetoaconflictwithss-configdefaultsettingsfortherecommendedMySQLmode.AfterrealizingthatMySQL8.0nolongersupportsNO_AUTO_CREATE_USER,weremovedthatsubmodefromthedefaultSQL_MODEinthess-configboilerplatedefaultsettings,andre-enabledSQL_MODEinthemy.cnfboilerplate.

NEW!SlickStackisnowconsideredBeta(nolongerAlpha)andhasbeenmovedtosupportingUbuntu20.04LTSonly,alongwithPHP7.4andMySQL8.0whicharethenewUbuntudefaults.Wehaveensurednocriticalconflictsexist,butsomeofthedocumentationandconfigurationarestillbeingfullyoptimizedfortheseupdatedmoduleversions.

NEW!Toavoidpotentialconflictswe'veaddedaSS_MU_PLUGINSvariablethatshouldbesettoeitherdefaultorcustominordertoactivatethecustomlistofMUpluginsthatyoucaneditinyourss-configfile...

NEW!ss-updatenowperformsa"safety"checkbeforerunningtoensurethatitiscompatiblewiththelatestversionofss-configinordertoavoidoverwritingthecurrentss-configversionwithanoutdatedboilerplate...

NEW!SlickStacknowsupportsfullycustomizingtheMU(Must-Use)pluginsthatareinstalled.ThiscanbedoneeasilybydefiningthedownloadlinkanddesireddirectorynameofeachMUplugininthess-configadvancedsettings(incasethesevariablesaremissing,SlickStackwilldefaulttotheLittleBizzyplugins).KeepinmindthattheAutoloader,ObjectCache,CustomFunctions,andXXXNoticespluginsarerequiredandcannotbedisabledatthistime.

NEW!SlickStacknowhasself-healingfunctionsintherootCrontaband1-cron-oftenand2-cron-regulartoensurethatCoreCronJobswillbereinstalledfreshincasetheyaremissingordamaged.Thisself-healingfunctionalsoensuresthatthecriticalCoreBashScriptsss-checkandss-workeralsoexistandareintacteverysingleday!

NEW!Runningss-updatewillnowautomagicallyupdateyourss-configtolatesttemplate...anyvariablesthataremissingorundefinedwillsimplybesetupusingthedefault(recommended)valuesforthosevariables...

NEW!Long-awaitedLet'sEncrypt(Certbot)supportisnowliveusingSSL_TYPEoptioninss-config...thosewhodonotwishtouseCloudFlarecannowusethisapproachinstead...OpenSSL+CloudFlareisstillalwaysourrecommendedapproachhowever...also,keepinmindthatduringinitialsetup(thefirsttimethatyourequestanSSLcertviaCertbot)youwillstillneedtohaveCloudFlareactivefor.well-knowndomainverificationtoworkproperlyoverHTTPS(otherwiseCertbotwillcomplainre:theself-signedOpenSSLcert)...

NEW!AllNginxfunctionalityisnowviaTCP-only(127.0.0.1)includingFastCGIcacheformorerobustscaling...manyNginxsettingscannowbecustomizedusingss-config...checkbackformoreoptionssoon...

NEW!AllMySQLfunctionalityisnowviaTCP-only(127.0.0.1)includingduringsetupandwhenpurgingtransientcacheviass-purgeforbetterdatabaseperformanceandsmoothertrafficscaling...

NEW!Ournewdefaultobjectcache(forkedfromPressJitsu)supportsaOBJECT_CACHEdefinedconstantsettoeithertrue(default)orfalsetoeasilydeactivateobjectcachingwithoutneedingtodeletetheobject-cache.phpfile...

NEW!SlickStacknowsupportscustompluginblacklistsusingPLUGIN_BLACKLIST_SOURCEvariable...

NEW!SlickStacknowdoesinclude_oncewithinwp-config.phpontheCustomFunctions(MUplugin)file/var/www/html/wp-content/functions.phpmeaningmuchmorereliablePHPfunctions...

Abstract[readmore]

Mostofmoderncomputinghistorycanbetracedbacktoonething:Unix.Indeed,oneoftheonlythingsaboutwebserversthathasn'tchangedmuchinseveraldecadesistheUnixshell(Bash)commandlanguage.KeepingthesamepragmatismandsimplicityinmindthatinspiredLittleBizzy'smanagedhosting,SlickStack[ss]iscodedentirelyinBash.

WhilethereareclearbenefitstoprogramminglanguageslikePythonorRuby,provisioningaserverwithWordPressisn'tverycomplicated,andeveryLinuxmachinecomeswithBashbuiltintoit.Plus,let'snotforgetwhathappenswhentypicalwebagenciesrelyonadvanceddependencieslikeAnsible...yikes!Onward,then...

Requirements(Compatibility)[readmore]

NOTE:SlickStack[ss]willneversupportinstallingmultipleTLDdomainsonasingleserver.Thisistoensuretopspeed,stability,andsecurity(i.e.technicalSEO).WewillalsoneverincludeanytypeofUIinterface,toallowthirdpartyapplicationstointegrateSlickStack[ss]withmanagementtoolsastheybestseefit.

SlickStack[ss]worksbestoncloudserverswithKVMvirtualizationthathaveatleast2GBRAMfromqualitynetworkproviderssuchasDigitalOcean,Vultr,Hostwinds,andAWSLightsail.TheunderlyingLEMPstackconfigurationismeantprimarilyforhigh-trafficsingle-siteWordPressinstallations,althoughsupportforMultisiteinstallationsisbeingplanned.SlickStack[ss]supportsWordPress,WooCommerce,bbPress,andBuddyPress"outofthebox"withoptimizedsettingsthatscale--whatthismeansisthatyoucanupgradeyourcloudservertoabiggerorbetterinstance,andrunss-installagain,andmostsettingswill(re)optimizethemselves.

Currently,SlickStack[ss]ismeantforasingleoriginserverwithasingle127.0.0.1database,althoughremotedatabasesshouldalsoworkfine.Server"clustering"or"loadbalancing"hasnotbeentested,andisnotthegoalhere;complexenterprise-styleconfigurationsforWordPressarerarelyneeded(andcanbeexpensiveanddifficulttomanage),thusSlickStack[ss]aimstotoprovideasimplesolutionforthe99%ofWordPresssitesthatdon'tneedsuchcomplexity.

ItshouldalsobenotedthatSlickStack[ss]isHTTPS-only,andthatHSTSisenabledbydefault,meaningthatHTTPsitesarenotsupported.BecauseOpenSSLgeneratesself-signedcertificates,SlickStack[ss]serversrequireCloudFlaretobeactiveinfrontofyourserverinorderforSSLcertificatestobeproperlyCA-signedandloadedbyyourbrowser,atleastuntilthefirstss-installhasbeencompleted(afterthat,youcanswitchtoCertbot/Let'sEncrypt).

Installation[readmore]

Becauseit’swrittenpurelyinBash(Unixshell),SlickStack[ss]hasnodependenciesandworksonanyUbuntuLinuxmachine.UnlikeheavierprovisioningtoolslikeEasyEngineorAnsible,therearenothirdpartylanguagesrequiredsuchasPythonorDocker,meaningalighterandsimplerapproachtolaunchingWordPressservers.

Thebelowinstallationstepsassumethatyou'vealreadyspunupadedicatedUbuntuLinuxVPSserver(KVM)withatleast2GBRAMmemoryandthatyouarenowloggedinviaSSH:

cd/tmp/&&wget-Ossslick.fyi&&bashss

NOTE:SlickStack[ss]requiresCloudFlaretobeactivatedonyourdomainbeforeSSL(HTTPS)willberecognizedasafullysecureandCA-signeddomain,becauseofitsself-signedOpenSSLcertificate.

Fromthispointforward,youcanmanageyourSlickStack[ss]serverbysimplyusingthesudobashcommandonanyoneoftheincludedssscriptslocatedwithinthe/var/www/directory,asneeded.However,inmostcasesthereshouldn'tbeanyneedformuchhands-onmanagementastheserverwillintelligentlyrunvariouscronjobswhichconnecttothisGitHubrepo(orwhicheverforkofthisrepothatyourteamhassetup...besuretomodifyallwgetsources).

Youcansafelyre-installSlickStack[ss]anytimeviasudobash/var/www/ss-installwithoutcausinganyconflictsordatalosssincetheinstallationprocessiscompletelyidempotent.

Philosophy

Outsideoftheso-calledApplicationLayer,somuchofthewaycomputersandserversnowworkhasbeenmovedawayfromin-houseteamsandspecialistsandonto"thecloud"thattermslikeDevOpshavebecomestandardamongrecruiters,companies,anddevelopersalike.Modernwebdevelopmenttrendshavebeguntorevolveentirelyaroundconceptssuchasautomation,APIs,cloudservices,andbeyond—aphenomenonwemightrefertoasWeb3.0.

Whilethisshiftisexciting,thereisnowamassiveandgrowingdisconnectbetweentheseemergingtechnologiesandthehumansthatareexpectedtoimplementorbenefitfromthem.Typicalsmallbusinessowners(SMBs),alongwithindependentagenciesorfreelancers,nowfaceavirtuallyimpossiblelearningcurveiftheywishtomaintainacompetitive"webdev"edge,letalonekeepupwithbasicstandardsinwebsiteperformanceandsecurity.

WhileSiliconValley"gurus"andcorporationspumpoutnewSaaSservices(orincrediblycomplexConfigurationManagementtoolslikeAnsible)onadailybasis,thetypicalsmallbusinesswebsiteisstilltryingtofigureouthowtomaketheircontactformsworkcorrectly.The"legacy"sharedwebhostingmonopolies—thinkEIGorGoDaddy—alsohavelittlemotivationtoeducationtheiraudience,asperpetuatingconfusionseemstobeacorepillaroftheirbusinessmodel.

Thus,beforethelikesofGoogleandAmazonandShopifyandWixtakeovertheentirewebandturnitintoWallStreet-backedwebsitebuildersthatfeedintotheirprivateecosystems,SlickStackhopestobridgetheknowledgegapbetweenemergingtechnologyandold-schoolwebdevelopmenttoempowerSMBstoachievetopnotchwebsiteperformanceandsecuritybyofferinga"controlled"LEMP-stackenvironmentwithlimitedoptionsthatisperfectlysuitedtotheworld'smostpopularopen-sourceCMS:WordPress.

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论