SlideShare a Scribd company logo
How to run ASP.NET on
virtual server for $5/mo
and why you should not do this
by Yuriy V. Silvestrov
@ysilvestrov
About us
Yuriy V. Silvestrov
15+ years record in IT, 10+ years devoted to managing
projects. Differrent occupations from Program Manager
to CTO and confounder of two startups. At the moment I
am working as a Senior Development Manager for
Oracle and also one of the co-developers of
Spillikin.
Facebook: fb.com/ysilvestrov
Please visit my website
http://yuriy.silvestrov.com
for more info or contact me at
yuriy@silvestrov.com.
@ysilvestrov
About lection Based on my own
experience
 Useful for startups
and pet projects
 Not the right way, not
the best way, but the
working one.
@ysilvestrov
@ysilvestrov
Time is counting
⌛ < 30
@ysilvestrov
How many of you
 Have tried ASP.NET Core?
 Have run ASP.NET on Linux?
 Have tried Heroku and/or Dokku?
 Are Dokker Experts?
 We’ll try to adapt
@ysilvestrov
@ysilvestrov
Content
 What’s this all about?
◦ The real task
◦ Why ASP.NET
◦ Where to host?
 ASP.NET Core
◦ Preparation
◦ Containers
◦ Remotely and locally
 Pros and Cons
 Q&A
@ysilvestrov, @valkovnet
@ysilvestrov
The real task
@ysilvestrov
Why to choose ASP.NET
@ysilvestrov
@ysilvestrov
Why not to buy cheap server or
host on Azure
 Azure
 VDS (Win)
 AppHarbor
 VDS (Linux)
@ysilvestrov
@ysilvestrov
Solution – Digital Ocean
@ysilvestrov
@ysilvestrov
ASP.NET Core: preparation
 Download latest VS 2015 and install
https://www.microsoft.com/net/core#windows
 Download latest ASP.NET Core and install
https://www.microsoft.com/net/core#windows
 Check if everything is working by running tutorial
https://docs.asp.net/en/latest/getting-
started.html
@ysilvestrov
@ysilvestrov
ASP.NET Core & container: locally
 Download and install Docker for Windows
https://www.docker.com/products/docker#/windows
 Download and install Kitematic right from Docker
menu
 Install VS tools for Docker
https://visualstudiogallery.msdn.microsoft.com/0f5b2
caa-ea00-41c8-b8a2-058c7da0b3e4
 Create Ubuntu host with Kitematic
 Run DockerTasks.ps1 as described in VS tools above
 In Kitematic you'll see new container. Open
WebPreview in browser and enjoi :)
@ysilvestrov
@ysilvestrov
ASP.NET Core & container:
remotely - registration
 Register on DigitalOcean. You can use my
referral link, if you'd like
https://m.do.co/c/61f8c0f9852c
 Create a droplet
◦ OneClick apps: Dokku
◦ Size: smallest ($5/mo)
◦ Choose region (I personally like Amsterdam)
◦ No additional options (especially IPv6 - there is a
bug with it)
◦ Enter the droplet name
◦ Add key (or create new one)
@ysilvestrov
ASP.NET Core & container:
remotely - setup
 Setup Domain
◦ On your DNS provider, add 2 DNS records
 your.domain A DropletIP
 *.your.domain A DropletIP
 open Dokku on http://your.domain
◦ Check the key
◦ Change hostname to your.domain
◦ Check "Use virtualhost naming"
◦ Click Finish setup
@ysilvestrov
ASP.NET Core & container:
remotely - tools
 Install tools
◦ Git for Windows
◦ PuTTy
◦ Add your keys to pageant (installed with
PuTTy)
◦ Open your.domain in PuTTy to cache the key
@ysilvestrov
ASP.NET Core & container:
remotely - deployment
 Push your app
◦ Open Git Bash shell
◦ cd /c/path/to/your/project/bin/Docker/Release
◦ copy Dockerfile on this level from [projectname] folder
◦ git init
◦ git add .
◦ git commit -m "First commit"
◦ git remote add dokku dokku@your.domain:your-app-
name
◦ git push dokku master
◦ If everything is OK, you should see "=====>
Application deployed: http:/ /your-app-
name.your.domain
◦ Open that URL and enjoi :)
@ysilvestrov
Why the heck the Spillikin API is
done using NodeJS?
 Limited DB support (apart from SQL
Server – PostgreSQL + SQLite)
 Too many changes in naming etc. (k =>
web => dotnet)
 Too many changes in interfaces etc.
@ysilvestrov
Questions?
???
@ysilvestrov
@ysilvestrov
Thank you!
yuriy@silvestrov.com

More Related Content

What's hot

Testing and updating WordPress - Advanced techniques for avoiding regressions
Testing and updating WordPress - Advanced techniques for avoiding regressionsTesting and updating WordPress - Advanced techniques for avoiding regressions
Testing and updating WordPress - Advanced techniques for avoiding regressions
Otto Kekäläinen
 
Technical SEO for WordPress - 2017 edition
Technical SEO for WordPress - 2017 editionTechnical SEO for WordPress - 2017 edition
Technical SEO for WordPress - 2017 edition
Otto Kekäläinen
 
Open source Java office, day 15: files handling in the NetBeans Application F...
Open source Java office, day 15: files handling in the NetBeans Application F...Open source Java office, day 15: files handling in the NetBeans Application F...
Open source Java office, day 15: files handling in the NetBeans Application F...
Anthony Goubard
 
Hello websocket(cn)
Hello websocket(cn)Hello websocket(cn)
Hello websocket(cn)g65537
 
Wt
WtWt
The 5 most common reasons for a slow WordPress site and how to fix them – ext...
The 5 most common reasons for a slow WordPress site and how to fix them – ext...The 5 most common reasons for a slow WordPress site and how to fix them – ext...
The 5 most common reasons for a slow WordPress site and how to fix them – ext...
Otto Kekäläinen
 
That's crazy! how to build single page web apps
That's crazy! how to build single page web appsThat's crazy! how to build single page web apps
That's crazy! how to build single page web appsChris Love
 
Angular – Say Goodbye to Javascript Soup
Angular – Say Goodbye to Javascript SoupAngular – Say Goodbye to Javascript Soup
Angular – Say Goodbye to Javascript SoupGraeme Foster
 
How to create_a_simple_java_web_service_and_publish_it_on_netbeans_7
How to create_a_simple_java_web_service_and_publish_it_on_netbeans_7How to create_a_simple_java_web_service_and_publish_it_on_netbeans_7
How to create_a_simple_java_web_service_and_publish_it_on_netbeans_7
X User
 
WordCamp Miami 2016 SiteLock Presentation
WordCamp Miami 2016 SiteLock PresentationWordCamp Miami 2016 SiteLock Presentation
WordCamp Miami 2016 SiteLock Presentation
SiteLock
 

What's hot (11)

Testing and updating WordPress - Advanced techniques for avoiding regressions
Testing and updating WordPress - Advanced techniques for avoiding regressionsTesting and updating WordPress - Advanced techniques for avoiding regressions
Testing and updating WordPress - Advanced techniques for avoiding regressions
 
Technical SEO for WordPress - 2017 edition
Technical SEO for WordPress - 2017 editionTechnical SEO for WordPress - 2017 edition
Technical SEO for WordPress - 2017 edition
 
Open source Java office, day 15: files handling in the NetBeans Application F...
Open source Java office, day 15: files handling in the NetBeans Application F...Open source Java office, day 15: files handling in the NetBeans Application F...
Open source Java office, day 15: files handling in the NetBeans Application F...
 
Hello websocket(cn)
Hello websocket(cn)Hello websocket(cn)
Hello websocket(cn)
 
Wt
WtWt
Wt
 
The 5 most common reasons for a slow WordPress site and how to fix them – ext...
The 5 most common reasons for a slow WordPress site and how to fix them – ext...The 5 most common reasons for a slow WordPress site and how to fix them – ext...
The 5 most common reasons for a slow WordPress site and how to fix them – ext...
 
That's crazy! how to build single page web apps
That's crazy! how to build single page web appsThat's crazy! how to build single page web apps
That's crazy! how to build single page web apps
 
Angular – Say Goodbye to Javascript Soup
Angular – Say Goodbye to Javascript SoupAngular – Say Goodbye to Javascript Soup
Angular – Say Goodbye to Javascript Soup
 
How to create_a_simple_java_web_service_and_publish_it_on_netbeans_7
How to create_a_simple_java_web_service_and_publish_it_on_netbeans_7How to create_a_simple_java_web_service_and_publish_it_on_netbeans_7
How to create_a_simple_java_web_service_and_publish_it_on_netbeans_7
 
WordCamp Miami 2016 SiteLock Presentation
WordCamp Miami 2016 SiteLock PresentationWordCamp Miami 2016 SiteLock Presentation
WordCamp Miami 2016 SiteLock Presentation
 
Coldfusion with Keith Diehl
Coldfusion with Keith DiehlColdfusion with Keith Diehl
Coldfusion with Keith Diehl
 

Viewers also liked

FNPW and Preserving Planet Earth
FNPW and Preserving Planet EarthFNPW and Preserving Planet Earth
FNPW and Preserving Planet Earth
Leisure Solutions®
 
Developing the startup (in Russian)
Developing the startup (in Russian)Developing the startup (in Russian)
Developing the startup (in Russian)
Yuriy Silvestrov
 
Ictmarch2009
Ictmarch2009Ictmarch2009
Ictmarch2009
Leisure Solutions®
 
PAC business profile
PAC business profilePAC business profile
PAC business profile
erickngala
 
First Nations Commodity Taxation
First Nations Commodity TaxationFirst Nations Commodity Taxation
First Nations Commodity Taxationnoahsarna
 
How stupid can we get
How stupid can we getHow stupid can we get
How stupid can we getguest0437b8
 
Smokers
SmokersSmokers
Smokers
kausarh
 
Introduction Lis 26
Introduction Lis 26Introduction Lis 26
Introduction Lis 26Lord Allen
 
5.Bt Grup As
5.Bt Grup As5.Bt Grup As
5.Bt Grup AsErmando
 
Etxebizitzak Villabonan
Etxebizitzak VillabonanEtxebizitzak Villabonan
Etxebizitzak VillabonanJurgi Alvarez
 
0912 Mc Kew (2)
0912 Mc Kew (2)0912 Mc Kew (2)
0912 Mc Kew (2)
jmkoloski
 
Airplane Susy &Masa
Airplane Susy &MasaAirplane Susy &Masa
Airplane Susy &MasaHello Kitty
 

Viewers also liked (20)

Teatro 2009
Teatro 2009Teatro 2009
Teatro 2009
 
FNPW and Preserving Planet Earth
FNPW and Preserving Planet EarthFNPW and Preserving Planet Earth
FNPW and Preserving Planet Earth
 
Developing the startup (in Russian)
Developing the startup (in Russian)Developing the startup (in Russian)
Developing the startup (in Russian)
 
Chapter 4 colonial government
Chapter 4 colonial governmentChapter 4 colonial government
Chapter 4 colonial government
 
Ictmarch2009
Ictmarch2009Ictmarch2009
Ictmarch2009
 
PAC business profile
PAC business profilePAC business profile
PAC business profile
 
First Nations Commodity Taxation
First Nations Commodity TaxationFirst Nations Commodity Taxation
First Nations Commodity Taxation
 
How stupid can we get
How stupid can we getHow stupid can we get
How stupid can we get
 
abrag
abragabrag
abrag
 
Miyagawa
MiyagawaMiyagawa
Miyagawa
 
Smokers
SmokersSmokers
Smokers
 
Bt pusher bluetooth marketing software system user guide
Bt pusher bluetooth marketing software system user guideBt pusher bluetooth marketing software system user guide
Bt pusher bluetooth marketing software system user guide
 
Introduction Lis 26
Introduction Lis 26Introduction Lis 26
Introduction Lis 26
 
5.Bt Grup As
5.Bt Grup As5.Bt Grup As
5.Bt Grup As
 
Etxebizitzak Villabonan
Etxebizitzak VillabonanEtxebizitzak Villabonan
Etxebizitzak Villabonan
 
Shannons Ink And Pencil
Shannons Ink And PencilShannons Ink And Pencil
Shannons Ink And Pencil
 
0912 Mc Kew (2)
0912 Mc Kew (2)0912 Mc Kew (2)
0912 Mc Kew (2)
 
Alum.Es
Alum.EsAlum.Es
Alum.Es
 
Page Rank
Page RankPage Rank
Page Rank
 
Airplane Susy &Masa
Airplane Susy &MasaAirplane Susy &Masa
Airplane Susy &Masa
 

Similar to How to run asp.net on virtual server for $5 per mo

Quick prototyping apps using JS - Ciklum, Vinnitsa
Quick prototyping apps using JS - Ciklum, VinnitsaQuick prototyping apps using JS - Ciklum, Vinnitsa
Quick prototyping apps using JS - Ciklum, Vinnitsa
Yuriy Silvestrov
 
Prototyping app using JS and HTML5 (Ciklum Kharkiv)
Prototyping app using JS and HTML5 (Ciklum Kharkiv)Prototyping app using JS and HTML5 (Ciklum Kharkiv)
Prototyping app using JS and HTML5 (Ciklum Kharkiv)Yuriy Silvestrov
 
Fast prototyping apps using AngularJS, RequireJS and Twitter Bootstrap
Fast prototyping apps using AngularJS, RequireJS and Twitter BootstrapFast prototyping apps using AngularJS, RequireJS and Twitter Bootstrap
Fast prototyping apps using AngularJS, RequireJS and Twitter Bootstrap
Yuriy Silvestrov
 
The State of Front-end At CrowdTwist
The State of Front-end At CrowdTwistThe State of Front-end At CrowdTwist
The State of Front-end At CrowdTwistMark Fayngersh
 
Pain Driven Development by Alexandr Sugak
Pain Driven Development by Alexandr SugakPain Driven Development by Alexandr Sugak
Pain Driven Development by Alexandr Sugak
Sigma Software
 
Do WordPress developers write code?
Do WordPress developers write code?Do WordPress developers write code?
Do WordPress developers write code?
Stanko Metodiev
 
Cf objective2014 software-craftsmanship
Cf objective2014   software-craftsmanshipCf objective2014   software-craftsmanship
Cf objective2014 software-craftsmanship
Kev McCabe
 
Cf objective2014 software-craftsmanship
Cf objective2014 software-craftsmanshipCf objective2014 software-craftsmanship
Cf objective2014 software-craftsmanshipColdFusionConference
 
Build and Deploy a Python Web App to Amazon in 30 Mins
Build and Deploy a Python Web App to Amazon in 30 MinsBuild and Deploy a Python Web App to Amazon in 30 Mins
Build and Deploy a Python Web App to Amazon in 30 Mins
Jeff Hull
 
20210916 mule soft_meetup_nz_online_uploadedversion
20210916 mule soft_meetup_nz_online_uploadedversion20210916 mule soft_meetup_nz_online_uploadedversion
20210916 mule soft_meetup_nz_online_uploadedversion
MizuhoHoshino
 
Me&g@home
Me&g@home Me&g@home
Me&g@home
Vytautas Dauksa
 
I started a VC fund - here is what happened
I started a VC fund - here is what happenedI started a VC fund - here is what happened
I started a VC fund - here is what happened
Andreas Klinger
 
MBA632 Lecture, Morehead State University
MBA632 Lecture, Morehead State UniversityMBA632 Lecture, Morehead State University
MBA632 Lecture, Morehead State University
Brad Ward
 
JS FAST Prototyping with AngularJS & RequireJS
JS FAST Prototyping with AngularJS & RequireJSJS FAST Prototyping with AngularJS & RequireJS
JS FAST Prototyping with AngularJS & RequireJS
Yuriy Silvestrov
 
Girl Scouts Website Designer Badge Seminar - Workbook
Girl Scouts Website Designer Badge Seminar - WorkbookGirl Scouts Website Designer Badge Seminar - Workbook
Girl Scouts Website Designer Badge Seminar - Workbook
Lauren Hayward Schaefer
 
Microsoft Webday 2008 - Silverlight Experiences
Microsoft Webday 2008 - Silverlight ExperiencesMicrosoft Webday 2008 - Silverlight Experiences
Microsoft Webday 2008 - Silverlight ExperiencesNicklas Andersson
 
Futuropolis 2058 Singapore - OpenSocial, a standard for the social web
Futuropolis 2058 Singapore - OpenSocial, a standard for the social webFuturopolis 2058 Singapore - OpenSocial, a standard for the social web
Futuropolis 2058 Singapore - OpenSocial, a standard for the social web
Patrick Chanezon
 
Building Your Startup with Technology
Building Your Startup with TechnologyBuilding Your Startup with Technology
Building Your Startup with Technology
Andri Yadi
 

Similar to How to run asp.net on virtual server for $5 per mo (20)

Quick prototyping apps using JS - Ciklum, Vinnitsa
Quick prototyping apps using JS - Ciklum, VinnitsaQuick prototyping apps using JS - Ciklum, Vinnitsa
Quick prototyping apps using JS - Ciklum, Vinnitsa
 
Prototyping app using JS and HTML5 (Ciklum Kharkiv)
Prototyping app using JS and HTML5 (Ciklum Kharkiv)Prototyping app using JS and HTML5 (Ciklum Kharkiv)
Prototyping app using JS and HTML5 (Ciklum Kharkiv)
 
Fast prototyping apps using AngularJS, RequireJS and Twitter Bootstrap
Fast prototyping apps using AngularJS, RequireJS and Twitter BootstrapFast prototyping apps using AngularJS, RequireJS and Twitter Bootstrap
Fast prototyping apps using AngularJS, RequireJS and Twitter Bootstrap
 
The State of Front-end At CrowdTwist
The State of Front-end At CrowdTwistThe State of Front-end At CrowdTwist
The State of Front-end At CrowdTwist
 
Pain Driven Development by Alexandr Sugak
Pain Driven Development by Alexandr SugakPain Driven Development by Alexandr Sugak
Pain Driven Development by Alexandr Sugak
 
Do WordPress developers write code?
Do WordPress developers write code?Do WordPress developers write code?
Do WordPress developers write code?
 
Cf objective2014 software-craftsmanship
Cf objective2014   software-craftsmanshipCf objective2014   software-craftsmanship
Cf objective2014 software-craftsmanship
 
Cf objective2014 software-craftsmanship
Cf objective2014 software-craftsmanshipCf objective2014 software-craftsmanship
Cf objective2014 software-craftsmanship
 
Build and Deploy a Python Web App to Amazon in 30 Mins
Build and Deploy a Python Web App to Amazon in 30 MinsBuild and Deploy a Python Web App to Amazon in 30 Mins
Build and Deploy a Python Web App to Amazon in 30 Mins
 
20210916 mule soft_meetup_nz_online_uploadedversion
20210916 mule soft_meetup_nz_online_uploadedversion20210916 mule soft_meetup_nz_online_uploadedversion
20210916 mule soft_meetup_nz_online_uploadedversion
 
Me&g@home
Me&g@home Me&g@home
Me&g@home
 
I started a VC fund - here is what happened
I started a VC fund - here is what happenedI started a VC fund - here is what happened
I started a VC fund - here is what happened
 
MBA632 Lecture, Morehead State University
MBA632 Lecture, Morehead State UniversityMBA632 Lecture, Morehead State University
MBA632 Lecture, Morehead State University
 
JS FAST Prototyping with AngularJS & RequireJS
JS FAST Prototyping with AngularJS & RequireJSJS FAST Prototyping with AngularJS & RequireJS
JS FAST Prototyping with AngularJS & RequireJS
 
Girl Scouts Website Designer Badge Seminar - Workbook
Girl Scouts Website Designer Badge Seminar - WorkbookGirl Scouts Website Designer Badge Seminar - Workbook
Girl Scouts Website Designer Badge Seminar - Workbook
 
Microsoft Webday 2008 - Silverlight Experiences
Microsoft Webday 2008 - Silverlight ExperiencesMicrosoft Webday 2008 - Silverlight Experiences
Microsoft Webday 2008 - Silverlight Experiences
 
Futuropolis 2058 Singapore - OpenSocial, a standard for the social web
Futuropolis 2058 Singapore - OpenSocial, a standard for the social webFuturopolis 2058 Singapore - OpenSocial, a standard for the social web
Futuropolis 2058 Singapore - OpenSocial, a standard for the social web
 
Building Your Startup with Technology
Building Your Startup with TechnologyBuilding Your Startup with Technology
Building Your Startup with Technology
 
Tf bavp
Tf bavpTf bavp
Tf bavp
 
Den bavp
Den bavpDen bavp
Den bavp
 

More from Yuriy Silvestrov

Startups intro to agile (по-русски)
Startups intro to agile (по-русски)Startups intro to agile (по-русски)
Startups intro to agile (по-русски)
Yuriy Silvestrov
 
Startup agile (Ciklum Agile Saturday - Dnipropetrovsk) - in russian
Startup agile (Ciklum Agile Saturday - Dnipropetrovsk) - in russianStartup agile (Ciklum Agile Saturday - Dnipropetrovsk) - in russian
Startup agile (Ciklum Agile Saturday - Dnipropetrovsk) - in russian
Yuriy Silvestrov
 
Agile antipatterns - AgileBC
Agile antipatterns - AgileBCAgile antipatterns - AgileBC
Agile antipatterns - AgileBCYuriy Silvestrov
 
Agile antipatterns (Odessa, Vinnitsa)
Agile antipatterns (Odessa, Vinnitsa)Agile antipatterns (Odessa, Vinnitsa)
Agile antipatterns (Odessa, Vinnitsa)
Yuriy Silvestrov
 
Catch agile
Catch agileCatch agile
Catch agile
Yuriy Silvestrov
 

More from Yuriy Silvestrov (6)

Startups intro to agile (по-русски)
Startups intro to agile (по-русски)Startups intro to agile (по-русски)
Startups intro to agile (по-русски)
 
Startup agile (Ciklum Agile Saturday - Dnipropetrovsk) - in russian
Startup agile (Ciklum Agile Saturday - Dnipropetrovsk) - in russianStartup agile (Ciklum Agile Saturday - Dnipropetrovsk) - in russian
Startup agile (Ciklum Agile Saturday - Dnipropetrovsk) - in russian
 
Developing the ideas
Developing the ideasDeveloping the ideas
Developing the ideas
 
Agile antipatterns - AgileBC
Agile antipatterns - AgileBCAgile antipatterns - AgileBC
Agile antipatterns - AgileBC
 
Agile antipatterns (Odessa, Vinnitsa)
Agile antipatterns (Odessa, Vinnitsa)Agile antipatterns (Odessa, Vinnitsa)
Agile antipatterns (Odessa, Vinnitsa)
 
Catch agile
Catch agileCatch agile
Catch agile
 

Recently uploaded

In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
Juraj Vysvader
 
Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
WSO2
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
Ortus Solutions, Corp
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
Globus
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
Philip Schwarz
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
Globus
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Shahin Sheidaei
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
Globus
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
Paco van Beckhoven
 
Graphic Design Crash Course for beginners
Graphic Design Crash Course for beginnersGraphic Design Crash Course for beginners
Graphic Design Crash Course for beginners
e20449
 
RISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent EnterpriseRISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent Enterprise
Srikant77
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
informapgpstrackings
 
A Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdfA Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdf
kalichargn70th171
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Globus
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
Tier1 app
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Natan Silnitsky
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
Georgi Kodinov
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
AMB-Review
 

Recently uploaded (20)

In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
 
Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
 
Graphic Design Crash Course for beginners
Graphic Design Crash Course for beginnersGraphic Design Crash Course for beginners
Graphic Design Crash Course for beginners
 
RISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent EnterpriseRISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent Enterprise
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
 
A Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdfA Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdf
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
 

How to run asp.net on virtual server for $5 per mo

  • 1. How to run ASP.NET on virtual server for $5/mo and why you should not do this by Yuriy V. Silvestrov @ysilvestrov
  • 2. About us Yuriy V. Silvestrov 15+ years record in IT, 10+ years devoted to managing projects. Differrent occupations from Program Manager to CTO and confounder of two startups. At the moment I am working as a Senior Development Manager for Oracle and also one of the co-developers of Spillikin. Facebook: fb.com/ysilvestrov Please visit my website http://yuriy.silvestrov.com for more info or contact me at yuriy@silvestrov.com. @ysilvestrov
  • 3. About lection Based on my own experience  Useful for startups and pet projects  Not the right way, not the best way, but the working one. @ysilvestrov
  • 5. @ysilvestrov How many of you  Have tried ASP.NET Core?  Have run ASP.NET on Linux?  Have tried Heroku and/or Dokku?  Are Dokker Experts?  We’ll try to adapt @ysilvestrov
  • 6. @ysilvestrov Content  What’s this all about? ◦ The real task ◦ Why ASP.NET ◦ Where to host?  ASP.NET Core ◦ Preparation ◦ Containers ◦ Remotely and locally  Pros and Cons  Q&A @ysilvestrov, @valkovnet
  • 8. @ysilvestrov Why to choose ASP.NET @ysilvestrov
  • 9. @ysilvestrov Why not to buy cheap server or host on Azure  Azure  VDS (Win)  AppHarbor  VDS (Linux) @ysilvestrov
  • 10. @ysilvestrov Solution – Digital Ocean @ysilvestrov
  • 11. @ysilvestrov ASP.NET Core: preparation  Download latest VS 2015 and install https://www.microsoft.com/net/core#windows  Download latest ASP.NET Core and install https://www.microsoft.com/net/core#windows  Check if everything is working by running tutorial https://docs.asp.net/en/latest/getting- started.html @ysilvestrov
  • 12. @ysilvestrov ASP.NET Core & container: locally  Download and install Docker for Windows https://www.docker.com/products/docker#/windows  Download and install Kitematic right from Docker menu  Install VS tools for Docker https://visualstudiogallery.msdn.microsoft.com/0f5b2 caa-ea00-41c8-b8a2-058c7da0b3e4  Create Ubuntu host with Kitematic  Run DockerTasks.ps1 as described in VS tools above  In Kitematic you'll see new container. Open WebPreview in browser and enjoi :) @ysilvestrov
  • 13. @ysilvestrov ASP.NET Core & container: remotely - registration  Register on DigitalOcean. You can use my referral link, if you'd like https://m.do.co/c/61f8c0f9852c  Create a droplet ◦ OneClick apps: Dokku ◦ Size: smallest ($5/mo) ◦ Choose region (I personally like Amsterdam) ◦ No additional options (especially IPv6 - there is a bug with it) ◦ Enter the droplet name ◦ Add key (or create new one)
  • 14. @ysilvestrov ASP.NET Core & container: remotely - setup  Setup Domain ◦ On your DNS provider, add 2 DNS records  your.domain A DropletIP  *.your.domain A DropletIP  open Dokku on http://your.domain ◦ Check the key ◦ Change hostname to your.domain ◦ Check "Use virtualhost naming" ◦ Click Finish setup
  • 15. @ysilvestrov ASP.NET Core & container: remotely - tools  Install tools ◦ Git for Windows ◦ PuTTy ◦ Add your keys to pageant (installed with PuTTy) ◦ Open your.domain in PuTTy to cache the key
  • 16. @ysilvestrov ASP.NET Core & container: remotely - deployment  Push your app ◦ Open Git Bash shell ◦ cd /c/path/to/your/project/bin/Docker/Release ◦ copy Dockerfile on this level from [projectname] folder ◦ git init ◦ git add . ◦ git commit -m "First commit" ◦ git remote add dokku dokku@your.domain:your-app- name ◦ git push dokku master ◦ If everything is OK, you should see "=====> Application deployed: http:/ /your-app- name.your.domain ◦ Open that URL and enjoi :)
  • 17. @ysilvestrov Why the heck the Spillikin API is done using NodeJS?  Limited DB support (apart from SQL Server – PostgreSQL + SQLite)  Too many changes in naming etc. (k => web => dotnet)  Too many changes in interfaces etc.