title
Publishing to a Web Server - Django Web Development with Python 11

description
In this Django tutorial, we cover how to move from a local environment to a live web server. I have chosen for us to use Digital Ocean because it is a fully-featured virtual private server, which gives you full access to anything you might want, has plans that are as low as $5/month, and also comes with a "one-click-application" server that has a lot of the tools we need pre-installed. Despite being $5/month, you can be billed hourly, so even if you just wanted to follow along and then cancel, you could do that and pay a few pennies. Digital Ocean Server: https://www.digitalocean.com/?refcode=d1c4c6e66979 Sample code and text-based tutorial: https://pythonprogramming.net/django-web-server-publish-tutorial/ https://pythonprogramming.net https://twitter.com/sentdex https://www.facebook.com/pythonprogramming.net https://plus.google.com/+sentdex

detail
{'title': 'Publishing to a Web Server - Django Web Development with Python 11', 'heatmap': [{'end': 235.967, 'start': 214.588, 'weight': 0.723}, {'end': 331.844, 'start': 312.149, 'weight': 0.813}, {'end': 475.951, 'start': 429.31, 'weight': 0.745}, {'end': 680.045, 'start': 655.048, 'weight': 0.733}, {'end': 701.639, 'start': 686.071, 'weight': 0.742}, {'end': 834.287, 'start': 710.884, 'weight': 0.769}, {'end': 893.984, 'start': 858.139, 'weight': 0.774}, {'end': 1031.122, 'start': 992.442, 'weight': 1}, {'end': 1134.483, 'start': 1106.278, 'weight': 0.743}], 'summary': "Tutorial series on django web development with python provides detailed guidance on pushing a django website live using digitalocean, covering server setup in new york for $5 a month, connecting to the server, troubleshooting deployment, configuring nginx, and tying domain names to digitalocean's name servers.", 'chapters': [{'end': 141.17, 'segs': [{'end': 99.23, 'src': 'embed', 'start': 40.196, 'weight': 0, 'content': [{'end': 41.556, 'text': "You don't have to use DigitalOcean.", 'start': 40.196, 'duration': 1.36}, {'end': 47.339, 'text': 'We are going to utilize DigitalOcean mainly because DigitalOcean offers a one-click install app.', 'start': 41.957, 'duration': 5.382}, {'end': 49.58, 'text': 'for Django specifically.', 'start': 48.199, 'duration': 1.381}, {'end': 52.701, 'text': "There are a lot of little things that we're still going to have to do after that,", 'start': 50.24, 'duration': 2.461}, {'end': 58.763, 'text': 'but it will significantly make the startup process a lot easier to use DigitalOcean.', 'start': 52.701, 'duration': 6.062}, {'end': 59.903, 'text': "Plus it's fairly cheap.", 'start': 58.863, 'duration': 1.04}, {'end': 67.286, 'text': "It's $5 a month for the smallest server, but also you can pay hourly and that's 0.7 pennies an hour.", 'start': 60.023, 'duration': 7.263}, {'end': 73.528, 'text': 'So really less than a penny to run through this tutorial and then you can close it if you want it or whatever.', 'start': 67.766, 'duration': 5.762}, {'end': 75.209, 'text': "So we're going to be using DigitalOcean.", 'start': 74.128, 'duration': 1.081}, {'end': 78.752, 'text': 'If you do not have a DigitalOcean account, there is a link in the description.', 'start': 75.229, 'duration': 3.523}, {'end': 80.474, 'text': "That's a referral link.", 'start': 78.792, 'duration': 1.682}, {'end': 86.098, 'text': 'If you want to support me and the channel and all that, and you were already going to use DigitalOcean anyways, you can use that link.', 'start': 80.734, 'duration': 5.364}, {'end': 90.082, 'text': 'If you want to stick it to me, then I suppose you could not use the link.', 'start': 87.119, 'duration': 2.963}, {'end': 92.724, 'text': 'So anyway, coming over here.', 'start': 90.502, 'duration': 2.222}, {'end': 99.23, 'text': 'But why are you watching? Anyway, come over here, and once you sign into DigitalOcean, there will be like a big green button in the top right.', 'start': 92.944, 'duration': 6.286}], 'summary': 'Utilize digitalocean for one-click django app install, starting at $5/month or 0.7 pennies/hour, making startup easier and cost-effective.', 'duration': 59.034, 'max_score': 40.196, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Y-CT_l1dnVU/pics/Y-CT_l1dnVU40196.jpg'}], 'start': 1.94, 'title': 'Pushing django website to digitalocean', 'summary': 'Explains the process of pushing a django website live using digitalocean, including the one-click install app, server cost, and referral link for support.', 'chapters': [{'end': 141.17, 'start': 1.94, 'title': 'Django web development tutorial: pushing website to digitalocean', 'summary': "Discusses the process of pushing a django website live to production using digitalocean, highlighting the one-click install app for django, the cost of digitalocean's server, and the referral link for support.", 'duration': 139.23, 'highlights': ['The chapter emphasizes the one-click install app for Django on DigitalOcean, making the startup process significantly easier. This feature is particularly beneficial for beginners and reduces the need for extensive configuration.', "The tutorial mentions the cost of DigitalOcean's smallest server, which is $5 a month or 0.7 pennies an hour, making it an affordable option for running a Django website in production.", "A referral link for supporting the presenter and the channel is provided for users interested in signing up for DigitalOcean, highlighting the option to utilize the link or not based on the viewer's preference."]}], 'duration': 139.23, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Y-CT_l1dnVU/pics/Y-CT_l1dnVU1940.jpg', 'highlights': ["The tutorial mentions the cost of DigitalOcean's smallest server, which is $5 a month or 0.7 pennies an hour, making it an affordable option for running a Django website in production.", 'The chapter emphasizes the one-click install app for Django on DigitalOcean, making the startup process significantly easier. This feature is particularly beneficial for beginners and reduces the need for extensive configuration.', "A referral link for supporting the presenter and the channel is provided for users interested in signing up for DigitalOcean, highlighting the option to utilize the link or not based on the viewer's preference."]}, {'end': 367.054, 'segs': [{'end': 181.549, 'src': 'embed', 'start': 142.39, 'weight': 0, 'content': [{'end': 145.212, 'text': "Then we'll come down here, and we're going to go with $5 a month or $0.007 an hour.", 'start': 142.39, 'duration': 2.822}, {'end': 150.134, 'text': "and then you've got a region.", 'start': 148.493, 'duration': 1.641}, {'end': 151.535, 'text': "i'm just going to go with new york.", 'start': 150.134, 'duration': 1.401}, {'end': 157.859, 'text': "it really doesn't matter, but you kind of want to think about like who your main users are going to be and you want your server located close to them,", 'start': 151.535, 'duration': 6.324}, {'end': 160.1, 'text': "if that's what you're doing.", 'start': 157.859, 'duration': 2.241}, {'end': 162.742, 'text': 'also if this is going to be your actual.', 'start': 160.1, 'duration': 2.642}, {'end': 166.445, 'text': 'if you plan to continue using this, i highly suggest you check backups.', 'start': 162.742, 'duration': 3.703}, {'end': 170.486, 'text': "it adds 20 to your monthly cost, But it's worth it.", 'start': 166.445, 'duration': 4.041}, {'end': 171.807, 'text': "It's worth it to have it there.", 'start': 170.607, 'duration': 1.2}, {'end': 173.147, 'text': 'Things do go wrong.', 'start': 172.167, 'duration': 0.98}, {'end': 174.167, 'text': 'Things get corrupted.', 'start': 173.287, 'duration': 0.88}, {'end': 175.508, 'text': 'You accidentally move something.', 'start': 174.207, 'duration': 1.301}, {'end': 180.709, 'text': 'One time I accidentally copied, like clicked and dragged my root directory into some other directory.', 'start': 175.888, 'duration': 4.821}, {'end': 181.549, 'text': "I don't even know what happened.", 'start': 180.729, 'duration': 0.82}], 'summary': 'Consider server location near main users, with $5/month or $0.007/hour cost and backups adding $20 to monthly cost.', 'duration': 39.159, 'max_score': 142.39, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Y-CT_l1dnVU/pics/Y-CT_l1dnVU142390.jpg'}, {'end': 236.928, 'src': 'heatmap', 'start': 200.578, 'weight': 4, 'content': [{'end': 201.498, 'text': 'You can call it whatever you want.', 'start': 200.578, 'duration': 0.92}, {'end': 203.34, 'text': "I'm just going to call it DjangoTuts.", 'start': 201.618, 'duration': 1.722}, {'end': 204.721, 'text': 'Good enough.', 'start': 204.3, 'duration': 0.421}, {'end': 209.324, 'text': "So go ahead and hit Create there, and I'm going to move this aside while that's creating.", 'start': 205.941, 'duration': 3.383}, {'end': 211.265, 'text': 'And we can look at our beautiful website.', 'start': 210.084, 'duration': 1.181}, {'end': 214.568, 'text': "And I'm actually going to move this aside.", 'start': 213.107, 'duration': 1.461}, {'end': 218.771, 'text': "While that's creating, what you're going to want to do is..", 'start': 214.588, 'duration': 4.183}, {'end': 221.773, 'text': "First of all, it depends on if you're on Windows, Mac, or Linux..", 'start': 218.771, 'duration': 3.002}, {'end': 226.718, 'text': 'Mac and Linux are basically the same as far as SSH is concerned.', 'start': 222.553, 'duration': 4.165}, {'end': 235.967, 'text': "So if you're on Mac or Linux, you just type in your terminal SSH and then the username which for now would just be root and then at,", 'start': 226.778, 'duration': 9.189}, {'end': 236.928, 'text': 'and then the IP address.', 'start': 235.967, 'duration': 0.961}], 'summary': 'Creating a website named djangotuts, using ssh for mac and linux', 'duration': 36.35, 'max_score': 200.578, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Y-CT_l1dnVU/pics/Y-CT_l1dnVU200578.jpg'}, {'end': 334.146, 'src': 'heatmap', 'start': 292.075, 'weight': 2, 'content': [{'end': 295.918, 'text': 'By now, your website should be, or your server should be, ready to go.', 'start': 292.075, 'duration': 3.843}, {'end': 302.622, 'text': "So I'm gonna move this stuff aside and Let's see if I got my email yet.", 'start': 296.038, 'duration': 6.584}, {'end': 312.149, 'text': 'So when you sign up for a digital ocean droplet server, You should be emailed and the email will contain the new, the droplet name, the IP address,', 'start': 302.662, 'duration': 9.487}, {'end': 315.831, 'text': 'the username which will always be root and then a password.', 'start': 312.149, 'duration': 3.682}, {'end': 319.034, 'text': "The first time you log in, it's gonna make you change that password.", 'start': 316.172, 'duration': 2.862}, {'end': 320.415, 'text': "So let's go ahead and log in.", 'start': 319.114, 'duration': 1.301}, {'end': 326.92, 'text': "So I'm just gonna copy and paste, just copy that IP, paste it in here, hit enter.", 'start': 320.435, 'duration': 6.485}, {'end': 331.844, 'text': 'Wait for it, might take it.', 'start': 330.243, 'duration': 1.601}, {'end': 334.146, 'text': 'Maybe the server, maybe I was too quick.', 'start': 332.705, 'duration': 1.441}], 'summary': 'Setting up a digital ocean droplet server, received email with droplet name, ip address, username root, and initial password.', 'duration': 42.071, 'max_score': 292.075, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Y-CT_l1dnVU/pics/Y-CT_l1dnVU292075.jpg'}, {'end': 374.257, 'src': 'embed', 'start': 340.451, 'weight': 3, 'content': [{'end': 343.554, 'text': "Let me go see if it's up on DigitalOcean.", 'start': 340.451, 'duration': 3.103}, {'end': 347.648, 'text': "I'm gonna pause this.", 'start': 347.108, 'duration': 0.54}, {'end': 351.269, 'text': "Okay, we're back.", 'start': 350.349, 'duration': 0.92}, {'end': 355.091, 'text': "So that probably took, let's see, the droplet was created.", 'start': 351.629, 'duration': 3.462}, {'end': 357.731, 'text': "I'll just give you guys an exact time that that took.", 'start': 355.131, 'duration': 2.6}, {'end': 362.793, 'text': 'Three minutes from being created to when I could actually connect.', 'start': 358.992, 'duration': 3.801}, {'end': 367.054, 'text': 'Okay, so here we have, this is just a message.', 'start': 363.413, 'duration': 3.641}, {'end': 374.257, 'text': "Basically, any time you connect to a server for the first time, it's gonna send you the RSA, at least for now, RSA2 fingerprint.", 'start': 367.094, 'duration': 7.163}], 'summary': 'It took three minutes to create and connect to the digitalocean droplet.', 'duration': 33.806, 'max_score': 340.451, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Y-CT_l1dnVU/pics/Y-CT_l1dnVU340451.jpg'}], 'start': 142.39, 'title': 'Setting up server and digital ocean droplet', 'summary': 'Discusses setting up a server in new york for $5 a month or $0.007 an hour, emphasizing the importance of adding backups at an additional cost of 20. it also outlines the process of setting up a digital ocean droplet, including receiving an email with server details and experiencing a three-minute delay before being able to connect.', 'chapters': [{'end': 200.558, 'start': 142.39, 'title': 'Setting up server and backups', 'summary': 'Discusses setting up a server in new york for $5 a month or $0.007 an hour, and emphasizes the importance of adding backups at an additional cost of 20, due to the potential risks and ease of recovery.', 'duration': 58.168, 'highlights': ['Setting up a server in New York for $5 a month or $0.007 an hour, with emphasis on server location close to main users.', 'Emphasizing the importance of adding backups at an additional cost of 20, due to potential risks and ease of recovery.', 'Highlighting the usefulness of having backups and the regret of not having them, especially in case of accidental data corruption.']}, {'end': 292.075, 'start': 200.578, 'title': 'Setting up djangotuts and ssh connection', 'summary': 'Explains the process of setting up djangotuts and making ssh connections, detailing the different steps for windows, mac, and linux, along with the tools required such as putty, winscp, and filezilla.', 'duration': 91.497, 'highlights': ['The chapter explains the process of setting up DjangoTuts and making SSH connections for Windows, Mac, and Linux. It covers the different steps for each operating system and emphasizes the tools required for Windows, such as putty, and for all systems, the use of WinSCP and Filezilla.', "Mac and Linux users can connect via SSH using the terminal by entering 'SSH' followed by the username and IP address. For Mac and Linux, the process involves typing 'SSH' in the terminal, specifying the username and IP address to establish the connection.", 'Windows users need to use putty for SSH connections and can use WinSCP for file transfer. Windows users are advised to use putty for SSH connections and WinSCP for file transfer, while also having the option of using Filezilla for file transfer.']}, {'end': 367.054, 'start': 292.075, 'title': 'Setting up digital ocean droplet', 'summary': 'Outlines the process of setting up a digital ocean droplet, including receiving an email with server details and experiencing a three-minute delay before being able to connect.', 'duration': 74.979, 'highlights': ['The process of setting up a Digital Ocean droplet involves receiving an email containing the droplet name, IP address, username (root), and initial password.', 'After creating a droplet, it took three minutes before the server was ready to connect, indicating a delay in the setup process.']}], 'duration': 224.664, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Y-CT_l1dnVU/pics/Y-CT_l1dnVU142390.jpg', 'highlights': ['Setting up a server in New York for $5 a month or $0.007 an hour, with emphasis on server location close to main users.', 'Emphasizing the importance of adding backups at an additional cost of 20, due to potential risks and ease of recovery.', 'The process of setting up a Digital Ocean droplet involves receiving an email containing the droplet name, IP address, username (root), and initial password.', 'After creating a droplet, it took three minutes before the server was ready to connect, indicating a delay in the setup process.', 'The chapter explains the process of setting up DjangoTuts and making SSH connections for Windows, Mac, and Linux.']}, {'end': 895.866, 'segs': [{'end': 404.743, 'src': 'embed', 'start': 367.094, 'weight': 0, 'content': [{'end': 374.257, 'text': "Basically, any time you connect to a server for the first time, it's gonna send you the RSA, at least for now, RSA2 fingerprint.", 'start': 367.094, 'duration': 7.163}, {'end': 379.218, 'text': "So if it's the first time you've ever connected to the server, that's totally normal.", 'start': 375.157, 'duration': 4.061}, {'end': 380.418, 'text': "That's fine.", 'start': 379.878, 'duration': 0.54}, {'end': 381.878, 'text': "You'll hit yes and continue on.", 'start': 380.498, 'duration': 1.38}, {'end': 383.819, 'text': 'If it is not the first time.', 'start': 382.479, 'duration': 1.34}, {'end': 390.3, 'text': "if you've been developing on the server and then you go to connect to it and suddenly the fingerprint changed,", 'start': 383.819, 'duration': 6.481}, {'end': 394.061, 'text': 'something hinky has happened and you need to figure out what is going on.', 'start': 390.3, 'duration': 3.761}, {'end': 395.241, 'text': "It's probably not good.", 'start': 394.121, 'duration': 1.12}, {'end': 396.601, 'text': 'So keep that in mind.', 'start': 395.521, 'duration': 1.08}, {'end': 398.102, 'text': "If it's a new server, don't worry about it.", 'start': 396.801, 'duration': 1.301}, {'end': 398.602, 'text': 'Hit yes.', 'start': 398.282, 'duration': 0.32}, {'end': 400.722, 'text': "So then you're going to log in.", 'start': 399.602, 'duration': 1.12}, {'end': 403.503, 'text': 'Here in our case, go back to your email.', 'start': 400.922, 'duration': 2.581}, {'end': 404.743, 'text': 'Your username should be Root.', 'start': 403.543, 'duration': 1.2}], 'summary': 'When connecting to a server for the first time, accept rsa fingerprint. a changed fingerprint indicates a problem.', 'duration': 37.649, 'max_score': 367.094, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Y-CT_l1dnVU/pics/Y-CT_l1dnVU367094.jpg'}, {'end': 479.976, 'src': 'heatmap', 'start': 425.728, 'weight': 2, 'content': [{'end': 426.569, 'text': 'You should be fine there.', 'start': 425.728, 'duration': 0.841}, {'end': 428.77, 'text': "Um, and then that, then you're logged in.", 'start': 427.189, 'duration': 1.581}, {'end': 434.091, 'text': "Okay Then again, it's gonna force you to change that password because that was just a temporary password.", 'start': 429.31, 'duration': 4.781}, {'end': 438.293, 'text': "So again, I'm just right clicking, hitting enter, and now I make a new password.", 'start': 434.131, 'duration': 4.162}, {'end': 441.414, 'text': 'So my password is cookies with an exclamation mark.', 'start': 438.353, 'duration': 3.061}, {'end': 446.289, 'text': "pro tip don't tell anybody else your server password.", 'start': 443.308, 'duration': 2.981}, {'end': 451.812, 'text': "okay, so once you're connected, um, you're, actually your website should be live.", 'start': 446.289, 'duration': 5.523}, {'end': 460.075, 'text': 'so, uh, if you go to your ip address, you can do this and just copy this and go, paste that into a browser.', 'start': 451.812, 'duration': 8.263}, {'end': 466.558, 'text': 'you should see this, and that should be a pretty familiar message from you from like one of the first tutorials when we set up django.', 'start': 460.075, 'duration': 6.483}, {'end': 470.944, 'text': 'So you should have that and you should be happy to be seeing that message.', 'start': 467.679, 'duration': 3.265}, {'end': 475.951, 'text': "Now, basically that's here because we just have a really simple app right now.", 'start': 471.304, 'duration': 4.647}, {'end': 479.976, 'text': "So what we're ready to do is to begin moving our files over.", 'start': 476.091, 'duration': 3.885}], 'summary': 'After setting a temporary password, the website should be live at the given ip address.', 'duration': 54.248, 'max_score': 425.728, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Y-CT_l1dnVU/pics/Y-CT_l1dnVU425728.jpg'}, {'end': 662.431, 'src': 'embed', 'start': 627.306, 'weight': 3, 'content': [{'end': 627.927, 'text': 'So home.', 'start': 627.306, 'duration': 0.621}, {'end': 632.712, 'text': 'Yeah Home Django and then Django project.', 'start': 628.327, 'duration': 4.385}, {'end': 638.743, 'text': "and then we'll come into, actually stay here.", 'start': 634.842, 'duration': 3.901}, {'end': 644.065, 'text': "so once you're on this page, uh, coming over here, this is our like website data.", 'start': 638.743, 'duration': 5.322}, {'end': 647.226, 'text': "uh, we're going to take blog, my site personal.", 'start': 644.065, 'duration': 3.161}, {'end': 655.048, 'text': "actually we're going to leave my site out of this and we're actually just going to take blog personal and the database.", 'start': 647.226, 'duration': 7.822}, {'end': 662.431, 'text': "so take those and either you're on filezilla or win sap and just click and drag them into the home django django project.", 'start': 655.048, 'duration': 7.383}], 'summary': 'Transfer blog personal and database to home django project.', 'duration': 35.125, 'max_score': 627.306, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Y-CT_l1dnVU/pics/Y-CT_l1dnVU627306.jpg'}, {'end': 680.045, 'src': 'heatmap', 'start': 655.048, 'weight': 0.733, 'content': [{'end': 662.431, 'text': "so take those and either you're on filezilla or win sap and just click and drag them into the home django django project.", 'start': 655.048, 'duration': 7.383}, {'end': 663.571, 'text': 'so click and drag those in.', 'start': 662.431, 'duration': 1.14}, {'end': 669.555, 'text': "And while we're waiting on that and that should be pretty quick, it's just the initial stuff will take a sec.", 'start': 665.771, 'duration': 3.784}, {'end': 680.045, 'text': "but while we're waiting on that, what's gonna happen is basically what have we done? Well, we've added new apps right?", 'start': 669.555, 'duration': 10.49}], 'summary': 'Adding new apps to django project using filezilla or winscp.', 'duration': 24.997, 'max_score': 655.048, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Y-CT_l1dnVU/pics/Y-CT_l1dnVU655048.jpg'}, {'end': 716.108, 'src': 'heatmap', 'start': 686.071, 'weight': 0.742, 'content': [{'end': 689.232, 'text': 'so clicking on Django project here, just double click into that.', 'start': 686.071, 'duration': 3.161}, {'end': 691.534, 'text': "that's basically our site.", 'start': 689.232, 'duration': 2.302}, {'end': 694.115, 'text': 'was you know, my site slash my site.', 'start': 691.534, 'duration': 2.581}, {'end': 697.197, 'text': 'this one click install makes it Django project, Django project.', 'start': 694.115, 'duration': 3.082}, {'end': 701.639, 'text': "so everywhere we have my site, we're just replacing with Django project.", 'start': 697.197, 'duration': 4.442}, {'end': 703.04, 'text': 'we could kind of flip that.', 'start': 701.639, 'duration': 1.401}, {'end': 709.304, 'text': 'we could change the core directories that lead to or the core files that lead to Django project either.', 'start': 703.04, 'duration': 6.264}, {'end': 710.884, 'text': "one's going to be a lot of effort.", 'start': 709.304, 'duration': 1.58}, {'end': 716.108, 'text': "so this one's, I think the easier way to go, Plus this is what you're more likely to do.", 'start': 710.884, 'duration': 5.224}], 'summary': "Replacing 'my site' with 'django project' in core files and directories is recommended for easier implementation.", 'duration': 30.037, 'max_score': 686.071, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Y-CT_l1dnVU/pics/Y-CT_l1dnVU686071.jpg'}, {'end': 834.287, 'src': 'heatmap', 'start': 710.884, 'weight': 0.769, 'content': [{'end': 716.108, 'text': "so this one's, I think the easier way to go, Plus this is what you're more likely to do.", 'start': 710.884, 'duration': 5.224}, {'end': 718.73, 'text': "You're more likely like if you're gonna use someone else's application.", 'start': 716.128, 'duration': 2.602}, {'end': 723.233, 'text': "you need to be familiar with moving those over and what's required to implement.", 'start': 718.73, 'duration': 4.503}, {'end': 728.957, 'text': "So once you're in here, we're gonna go into the settings.py and that's this file here.", 'start': 723.954, 'duration': 5.003}, {'end': 734.862, 'text': "Another pro tip, I've said it before but I'll say it again, don't share the secret key with anybody.", 'start': 729.558, 'duration': 5.304}, {'end': 737.344, 'text': "It's just in this tutorial simply because it has to be.", 'start': 734.902, 'duration': 2.442}, {'end': 739.485, 'text': "So I'm making this big.", 'start': 737.964, 'duration': 1.521}, {'end': 742.71, 'text': 'The first thing we have to do is we have to install the app.', 'start': 740.746, 'duration': 1.964}, {'end': 743.833, 'text': 'So we come down here.', 'start': 743.031, 'duration': 0.802}, {'end': 746.217, 'text': 'And if you remember, we had two apps.', 'start': 744.233, 'duration': 1.984}, {'end': 750.306, 'text': 'We have Blog and then Personal.', 'start': 746.538, 'duration': 3.768}, {'end': 752.204, 'text': 'Okay, save that.', 'start': 751.323, 'duration': 0.881}, {'end': 758.37, 'text': "The other thing we have to do is if you come down here, we'll see that they're using a Postgres database.", 'start': 752.985, 'duration': 5.385}, {'end': 760.793, 'text': "Instead, I'm going to replace that.", 'start': 759.191, 'duration': 1.602}, {'end': 763.656, 'text': "We're using SQLite.", 'start': 761.053, 'duration': 2.603}, {'end': 768.521, 'text': 'So if you go into your, these are the files, this is the tutorial files leading up to this.', 'start': 764.097, 'duration': 4.424}, {'end': 770.824, 'text': 'Go into my site and then the settings.py.', 'start': 768.581, 'duration': 2.243}, {'end': 771.965, 'text': "Let's go ahead and open that one up.", 'start': 770.884, 'duration': 1.081}, {'end': 774.672, 'text': "and I'm gonna move this aside.", 'start': 773.53, 'duration': 1.142}, {'end': 779.881, 'text': "We're looking for the database, this.", 'start': 776.275, 'duration': 3.606}, {'end': 781.544, 'text': 'Okay, this is your databases.', 'start': 779.901, 'duration': 1.643}, {'end': 788.621, 'text': "So we'll take that copy paste and we'll save that.", 'start': 781.904, 'duration': 6.717}, {'end': 792.862, 'text': "we are going to come back in and we have to add one more thing, but we'll come back to that.", 'start': 788.621, 'duration': 4.241}, {'end': 804.545, 'text': "so go ahead and exit that and i'm going to exit this before i get confused and then we're going to open up urls.pi and then again going back over to our original website.", 'start': 792.862, 'duration': 11.683}, {'end': 805.825, 'text': 'just go ahead and open up that one.', 'start': 804.545, 'duration': 1.28}, {'end': 807.625, 'text': "we'll just copy and paste them over.", 'start': 805.825, 'duration': 1.8}, {'end': 813.407, 'text': 'so we need the urls that point to the personal.urls and the urls that point to the blog.urls.', 'start': 807.625, 'duration': 5.782}, {'end': 818.031, 'text': "so let's move this over coming over here, paste and then fix this.", 'start': 813.407, 'duration': 4.624}, {'end': 820.654, 'text': 'Okay Save that.', 'start': 818.051, 'duration': 2.603}, {'end': 825.601, 'text': 'close out of that and let me think here.', 'start': 822.079, 'duration': 3.522}, {'end': 834.287, 'text': "the next thing that we want to do, this one-click install is first of all, it's on Django 14.04, for example.", 'start': 825.601, 'duration': 8.686}], 'summary': 'Explanation of configuring django app settings and database, using sqlite instead of postgres, and pointing urls to different apps.', 'duration': 123.403, 'max_score': 710.884, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Y-CT_l1dnVU/pics/Y-CT_l1dnVU710884.jpg'}, {'end': 774.672, 'src': 'embed', 'start': 746.538, 'weight': 4, 'content': [{'end': 750.306, 'text': 'We have Blog and then Personal.', 'start': 746.538, 'duration': 3.768}, {'end': 752.204, 'text': 'Okay, save that.', 'start': 751.323, 'duration': 0.881}, {'end': 758.37, 'text': "The other thing we have to do is if you come down here, we'll see that they're using a Postgres database.", 'start': 752.985, 'duration': 5.385}, {'end': 760.793, 'text': "Instead, I'm going to replace that.", 'start': 759.191, 'duration': 1.602}, {'end': 763.656, 'text': "We're using SQLite.", 'start': 761.053, 'duration': 2.603}, {'end': 768.521, 'text': 'So if you go into your, these are the files, this is the tutorial files leading up to this.', 'start': 764.097, 'duration': 4.424}, {'end': 770.824, 'text': 'Go into my site and then the settings.py.', 'start': 768.581, 'duration': 2.243}, {'end': 771.965, 'text': "Let's go ahead and open that one up.", 'start': 770.884, 'duration': 1.081}, {'end': 774.672, 'text': "and I'm gonna move this aside.", 'start': 773.53, 'duration': 1.142}], 'summary': 'Replacing postgres with sqlite in the settings.py file.', 'duration': 28.134, 'max_score': 746.538, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Y-CT_l1dnVU/pics/Y-CT_l1dnVU746538.jpg'}, {'end': 893.984, 'src': 'heatmap', 'start': 858.139, 'weight': 0.774, 'content': [{'end': 860.16, 'text': 'six, point one.', 'start': 858.139, 'duration': 2.021}, {'end': 861.26, 'text': "we don't want to be using that.", 'start': 860.16, 'duration': 1.1}, {'end': 864.422, 'text': "I mean it should be fine, but we're gonna go ahead and update that.", 'start': 861.26, 'duration': 3.162}, {'end': 865.862, 'text': 'so quit.', 'start': 864.422, 'duration': 1.44}, {'end': 877.692, 'text': "and what we're gonna do is pip, um, pip, install dash, dash, upgrade, uh, django, okay, hit enter there and now we've got 1.9.1.", 'start': 865.862, 'duration': 11.83}, {'end': 881.356, 'text': "we did see that we got this syntax error, but it looks like it's still installed.", 'start': 877.692, 'duration': 3.664}, {'end': 882.998, 'text': 'but we will check just to make sure.', 'start': 881.356, 'duration': 1.642}, {'end': 888.443, 'text': 'so python, import django and then django dot all caps version.', 'start': 882.998, 'duration': 5.445}, {'end': 893.984, 'text': "Okay, so now we're pushing 1.9.1..", 'start': 891.823, 'duration': 2.161}], 'summary': 'Upgraded to django 1.9.1 with syntax error during installation', 'duration': 35.845, 'max_score': 858.139, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Y-CT_l1dnVU/pics/Y-CT_l1dnVU858139.jpg'}], 'start': 367.094, 'title': 'Connecting to server and moving django files', 'summary': 'Covers connecting to a server, handling rsa fingerprint, logging in with a temporary password, and changing the password. it also discusses moving django files to the server, installing apps, updating django version to 1.9.1, and replacing the database from postgres to sqlite.', 'chapters': [{'end': 446.289, 'start': 367.094, 'title': 'Connecting to server: rsa fingerprint and login', 'summary': 'Discusses the process of connecting to a server, including handling the rsa fingerprint, logging in with a temporary password, and changing the password, emphasizing the significance of rsa fingerprint changes and the importance of creating secure passwords.', 'duration': 79.195, 'highlights': ["When connecting to a server for the first time, the RSA2 fingerprint will be sent, and it is normal to hit 'yes' to continue (e.g., no need to worry about it on a new server).", 'In the event of a changed fingerprint when reconnecting to a server, it indicates a potential issue and necessitates further investigation for security reasons.', "The process of logging into the server involves using the provided username 'Root' and the temporary password received via email.", 'Using Putty, copying the password and pasting it in the terminal by right-clicking is a convenient method, but its applicability to Mac or Linux is uncertain.', 'After logging in, changing the temporary password is mandatory, and creating a secure password is advised, with a caution against sharing the server password with others.']}, {'end': 895.866, 'start': 446.289, 'title': 'Moving django files and installing apps', 'summary': 'Discusses moving django files to the server, installing apps, updating the django version to 1.9.1, and replacing the database from postgres to sqlite.', 'duration': 449.577, 'highlights': ['Moving Django files to the server The process of moving Django files to the server, including transferring blog, personal, and database files to the home/django/django project directory.', 'Installing apps and replacing the database Instructions for installing the Blog and Personal apps, replacing the Postgres database with SQLite, and updating the Django version to 1.9.1.']}], 'duration': 528.772, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Y-CT_l1dnVU/pics/Y-CT_l1dnVU367094.jpg', 'highlights': ["When connecting to a server for the first time, the RSA2 fingerprint will be sent, and it is normal to hit 'yes' to continue (e.g., no need to worry about it on a new server).", "The process of logging into the server involves using the provided username 'Root' and the temporary password received via email.", 'After logging in, changing the temporary password is mandatory, and creating a secure password is advised, with a caution against sharing the server password with others.', 'Moving Django files to the server, including transferring blog, personal, and database files to the home/django/django project directory.', 'Instructions for installing the Blog and Personal apps, replacing the Postgres database with SQLite, and updating the Django version to 1.9.1.']}, {'end': 1137.603, 'segs': [{'end': 967.12, 'src': 'embed', 'start': 928.347, 'weight': 0, 'content': [{'end': 929.388, 'text': 'let me try to refresh now.', 'start': 928.347, 'duration': 1.041}, {'end': 930.049, 'text': 'if that did it.', 'start': 929.388, 'duration': 0.661}, {'end': 930.809, 'text': 'yeah, okay?', 'start': 930.049, 'duration': 0.76}, {'end': 934.153, 'text': "So that's kind of like we're starting Apache right.", 'start': 931.25, 'duration': 2.903}, {'end': 937.336, 'text': 'so anytime you make a change, you might need to do that,', 'start': 934.153, 'duration': 3.183}, {'end': 945.845, 'text': "but I'm pretty sure you only need to do that if you've updated your like your settings and maybe the urls.py and stuff like that.", 'start': 937.336, 'duration': 8.509}, {'end': 952.371, 'text': "You don't have to play around with that, but it seems like Django automatically updates a lot more than Flask from what I've found.", 'start': 945.865, 'duration': 6.506}, {'end': 956.454, 'text': "Anyway, once you've done that, you can refresh and boom.", 'start': 953.051, 'duration': 3.403}, {'end': 960.197, 'text': "you've got a lot of things, but you're actually still missing a few things, right?", 'start': 956.454, 'duration': 3.743}, {'end': 961.679, 'text': 'Our images are gone.', 'start': 960.618, 'duration': 1.061}, {'end': 967.12, 'text': "And it looks like we're not pushing any bootstrap, right? There's no CSS here.", 'start': 962.199, 'duration': 4.921}], 'summary': 'When making changes in django, refreshing may be required. django automatically updates more than flask. images and css may not load after making changes.', 'duration': 38.773, 'max_score': 928.347, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Y-CT_l1dnVU/pics/Y-CT_l1dnVU928347.jpg'}, {'end': 1019.111, 'src': 'embed', 'start': 992.442, 'weight': 1, 'content': [{'end': 1008.351, 'text': "First, what you're going to want to do is you want to nano slash etc and then nginx and then sitesavailable and then django.", 'start': 992.442, 'duration': 15.909}, {'end': 1013.326, 'text': "And what that's going to do is it's going to open up your configuration for your Django application.", 'start': 1009.383, 'duration': 3.943}, {'end': 1019.111, 'text': "And coming down, what you're looking for is the Django project static files directory.", 'start': 1014.027, 'duration': 5.084}], 'summary': 'Access configuration files via nano to find django static files directory.', 'duration': 26.669, 'max_score': 992.442, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Y-CT_l1dnVU/pics/Y-CT_l1dnVU992442.jpg'}, {'end': 1031.122, 'src': 'heatmap', 'start': 992.442, 'weight': 1, 'content': [{'end': 1008.351, 'text': "First, what you're going to want to do is you want to nano slash etc and then nginx and then sitesavailable and then django.", 'start': 992.442, 'duration': 15.909}, {'end': 1013.326, 'text': "And what that's going to do is it's going to open up your configuration for your Django application.", 'start': 1009.383, 'duration': 3.943}, {'end': 1019.111, 'text': "And coming down, what you're looking for is the Django project static files directory.", 'start': 1014.027, 'duration': 5.084}, {'end': 1026.917, 'text': "In our case, it's alias to slash home, Django, Django project, Django project, static.", 'start': 1020.052, 'duration': 6.865}, {'end': 1031.122, 'text': 'Take that and just control C to copy it.', 'start': 1027.719, 'duration': 3.403}], 'summary': 'Navigate to /etc/nginx/sites-available to configure django static files directory.', 'duration': 38.68, 'max_score': 992.442, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Y-CT_l1dnVU/pics/Y-CT_l1dnVU992442.jpg'}, {'end': 1134.483, 'src': 'heatmap', 'start': 1106.278, 'weight': 0.743, 'content': [{'end': 1118.19, 'text': 'and now what we want to do is we want to run python, manage dot pi, collect static, hit enter and then basically,', 'start': 1106.278, 'duration': 11.912}, {'end': 1121.093, 'text': "it's just telling you you're going to overwrite some existing files.", 'start': 1118.19, 'duration': 2.903}, {'end': 1122.934, 'text': 'are you sure you want to do that?', 'start': 1121.093, 'duration': 1.841}, {'end': 1127.601, 'text': 'yes, It says 73 static files have been copied.', 'start': 1122.934, 'duration': 4.667}, {'end': 1134.483, 'text': "We'll come over here, refresh, and now we have HTML, CSS.", 'start': 1128.561, 'duration': 5.922}], 'summary': "Running 'python manage.py collectstatic' copied 73 static files, resulting in html and css.", 'duration': 28.205, 'max_score': 1106.278, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Y-CT_l1dnVU/pics/Y-CT_l1dnVU1106278.jpg'}], 'start': 896.466, 'title': 'Troubleshooting django website deployment and configuring nginx for django', 'summary': 'Discusses troubleshooting the deployment of a django website, emphasizing the need to update settings and urls.py for changes to take effect. it also details the configuration process for nginx to serve static files for a django application, resulting in 73 static files being copied.', 'chapters': [{'end': 992.182, 'start': 896.466, 'title': 'Troubleshooting django website deployment', 'summary': 'Discusses troubleshooting the deployment of a django website, including restarting services and addressing missing css and images, emphasizing the need to update settings and urls.py for changes to take effect.', 'duration': 95.716, 'highlights': ['The need to restart services like Apache and Gunicorn to reflect changes made to settings and urls.py in Django.', 'Emphasizing the automatic updating functionality of Django compared to Flask, which requires less manual intervention for changes to take effect.', 'Addressing the issue of missing CSS and images in the deployed website and the specific directory structure needed to resolve the problem.']}, {'end': 1137.603, 'start': 992.442, 'title': 'Configuring nginx for django', 'summary': 'Details the configuration process for nginx to serve static files for a django application, including accessing the configuration file, making necessary changes, and running the collectstatic command, resulting in 73 static files being copied.', 'duration': 145.161, 'highlights': ["Accessing the Nginx configuration file by navigating to /etc/nginx/sites-available and locating the Django project's static files directory, which in this case is alias to /home/django/django_project/static.", "Modifying the static URL in the settings.py file of the Django project by adding 'static_root = /home/django/django_project/django_project/static', saving the file, and exiting the editor.", "Changing directory to the Django project and running 'python manage.py collectstatic', resulting in the copying of 73 static files and allowing Nginx to serve HTML and CSS files."]}], 'duration': 241.137, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Y-CT_l1dnVU/pics/Y-CT_l1dnVU896466.jpg', 'highlights': ['Restart services like Apache and Gunicorn to reflect changes in Django settings and urls.py.', "Access Nginx configuration file at /etc/nginx/sites-available and locate Django project's static files directory.", 'Emphasize automatic updating functionality of Django compared to Flask for changes to take effect.']}, {'end': 1429.411, 'segs': [{'end': 1248.795, 'src': 'embed', 'start': 1222.115, 'weight': 0, 'content': [{'end': 1226.336, 'text': "In my case, since we're hosting on DigitalOcean, these are the three name servers.", 'start': 1222.115, 'duration': 4.221}, {'end': 1228.537, 'text': "So if you're on DigitalOcean, use the exact same thing.", 'start': 1226.396, 'duration': 2.141}, {'end': 1232.958, 'text': "It's ns1.digitalocean.com, ns2 and ns3, same things.", 'start': 1228.577, 'duration': 4.381}, {'end': 1234.498, 'text': 'Put those in.', 'start': 1233.878, 'duration': 0.62}, {'end': 1244.974, 'text': "And then that can take, I don't know how long the cycle is on Google, but usually that can take up to 15 minutes to take effect.", 'start': 1235.39, 'duration': 9.584}, {'end': 1248.795, 'text': "If you're changing name servers like if you had name servers before,", 'start': 1245.334, 'duration': 3.461}], 'summary': 'When hosting on digitalocean, use ns1, ns2, and ns3 as name servers, and changes may take up to 15 minutes to take effect.', 'duration': 26.68, 'max_score': 1222.115, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Y-CT_l1dnVU/pics/Y-CT_l1dnVU1222115.jpg'}, {'end': 1294.186, 'src': 'embed', 'start': 1263.703, 'weight': 3, 'content': [{'end': 1266.205, 'text': "basically, what you're doing is you're pointing this.", 'start': 1263.703, 'duration': 2.502}, {'end': 1268.126, 'text': 'this is, you know, cyber.io.', 'start': 1266.205, 'duration': 1.921}, {'end': 1272.789, 'text': "we're pointing that domain to the name servers for digital ocean.", 'start': 1268.126, 'duration': 4.663}, {'end': 1273.95, 'text': "that's one step.", 'start': 1272.789, 'duration': 1.161}, {'end': 1280.254, 'text': 'the next step is on digital ocean saying what we want to do with that domain name.', 'start': 1273.95, 'duration': 6.304}, {'end': 1286.799, 'text': 'so, coming over to digital ocean, you can click on the networking tab at the very, very top and then click on Domains.', 'start': 1280.254, 'duration': 6.545}, {'end': 1294.186, 'text': "And the one I'm interested in is, well, actually, probably what you would do is you would add a domain.", 'start': 1287.72, 'duration': 6.466}], 'summary': 'Point cyber.io domain to digital ocean name servers for configuration.', 'duration': 30.483, 'max_score': 1263.703, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Y-CT_l1dnVU/pics/Y-CT_l1dnVU1263703.jpg'}, {'end': 1424.764, 'src': 'embed', 'start': 1381.585, 'weight': 4, 'content': [{'end': 1392.229, 'text': 'so really the thing that takes the most time is point is actually taking a domain from the domain registrar and pointing it to a specific host name servers.', 'start': 1381.585, 'duration': 10.644}, {'end': 1395.37, 'text': "that takes a lot of time, especially if you're changing the name service.", 'start': 1392.229, 'duration': 3.141}, {'end': 1396.991, 'text': "so if you've changed hosts or something like that.", 'start': 1395.37, 'duration': 1.621}, {'end': 1402.292, 'text': "But once you've done that part, once that process is done, and if it's the first time, it's usually pretty quick.", 'start': 1397.531, 'duration': 4.761}, {'end': 1409.214, 'text': "But anyway, once that's done, you go to whoever your host is, in our case it was DigitalOcean, and then you set up the rest there.", 'start': 1403.532, 'duration': 5.682}, {'end': 1417.273, 'text': "So anyway, that's how you can tie a domain name to the actual website, and then everything else should be Done.", 'start': 1409.674, 'duration': 7.599}, {'end': 1421.119, 'text': "So anyways, that's it for pushing your website to production.", 'start': 1417.694, 'duration': 3.425}, {'end': 1424.764, 'text': 'If you have questions, comments, concerns, whatever, feel free to leave them below.', 'start': 1421.64, 'duration': 3.124}], 'summary': 'Pointing a domain to a host takes time, but once done, setting up the website is quick and straightforward.', 'duration': 43.179, 'max_score': 1381.585, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Y-CT_l1dnVU/pics/Y-CT_l1dnVU1381585.jpg'}], 'start': 1137.643, 'title': 'Connecting and tying domain names to digitalocean', 'summary': "Covers connecting a domain name to digitalocean by configuring name servers including ns1.digitalocean.com, ns2.digitalocean.com, and ns3.digitalocean.com, and setting up the domain on digitalocean's name servers, highlighting the approximate time for changes to take effect.", 'chapters': [{'end': 1263.703, 'start': 1137.643, 'title': 'Connecting domain name to digitalocean', 'summary': 'Explains how to connect a domain name to digitalocean, including configuring name servers and the approximate time it takes for the changes to take effect, emphasizing the use of ns1.digitalocean.com, ns2.digitalocean.com, and ns3.digitalocean.com as the name servers.', 'duration': 126.06, 'highlights': ['The approximate time for the changes to take effect can be up to 15 minutes, and using ns1.digitalocean.com, ns2.digitalocean.com, and ns3.digitalocean.com as the name servers is essential.', 'Configuring the domain name server involves using name servers like ns1.digitalocean.com, ns2.digitalocean.com, and ns3.digitalocean.com, which should be put in and can take up to 15 minutes to take effect.', 'Connecting a domain name to DigitalOcean involves configuring the name servers, such as ns1.digitalocean.com, ns2.digitalocean.com, and ns3.digitalocean.com, and the changes can take up to 15 minutes to be effective.']}, {'end': 1429.411, 'start': 1263.703, 'title': 'Tying domain to website on digitalocean', 'summary': "Explains the process of pointing a domain to digitalocean's name servers and setting up the domain on digitalocean, with the main time-consuming step being pointing the domain to specific host name servers.", 'duration': 165.708, 'highlights': ['Pointing a domain to specific host name servers takes a lot of time, especially if changing the name servers or hosts. The process of pointing a domain to specific host name servers can be time-consuming, especially when changing the name servers or hosts.', 'Setting up the domain on DigitalOcean involves adding the domain and creating a record with the desired IP address or droplet. Setting up the domain on DigitalOcean includes adding the domain, creating a record with the desired IP address or droplet, and ensuring the process is completed.', 'Once the domain is tied to the website, the rest of the setup should be completed on the hosting platform, such as DigitalOcean. After tying the domain to the website, the remaining setup should be completed on the hosting platform, such as DigitalOcean.']}], 'duration': 291.768, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Y-CT_l1dnVU/pics/Y-CT_l1dnVU1137643.jpg', 'highlights': ['Configuring the domain name server involves using name servers like ns1.digitalocean.com, ns2.digitalocean.com, and ns3.digitalocean.com, which should be put in and can take up to 15 minutes to take effect.', 'Connecting a domain name to DigitalOcean involves configuring the name servers, such as ns1.digitalocean.com, ns2.digitalocean.com, and ns3.digitalocean.com, and the changes can take up to 15 minutes to be effective.', 'The approximate time for the changes to take effect can be up to 15 minutes, and using ns1.digitalocean.com, ns2.digitalocean.com, and ns3.digitalocean.com as the name servers is essential.', 'Setting up the domain on DigitalOcean involves adding the domain, creating a record with the desired IP address or droplet, and ensuring the process is completed.', 'Once the domain is tied to the website, the rest of the setup should be completed on the hosting platform, such as DigitalOcean.', 'Pointing a domain to specific host name servers takes a lot of time, especially if changing the name servers or hosts. The process of pointing a domain to specific host name servers can be time-consuming, especially when changing the name servers or hosts.']}], 'highlights': ["The tutorial mentions the cost of DigitalOcean's smallest server, which is $5 a month or 0.7 pennies an hour, making it an affordable option for running a Django website in production.", 'Setting up a server in New York for $5 a month or $0.007 an hour, with emphasis on server location close to main users.', 'Emphasizing the importance of adding backups at an additional cost of 20, due to potential risks and ease of recovery.', 'The process of setting up a Digital Ocean droplet involves receiving an email containing the droplet name, IP address, username (root), and initial password.', "When connecting to a server for the first time, the RSA2 fingerprint will be sent, and it is normal to hit 'yes' to continue (e.g., no need to worry about it on a new server).", 'Restart services like Apache and Gunicorn to reflect changes in Django settings and urls.py.', 'Configuring the domain name server involves using name servers like ns1.digitalocean.com, ns2.digitalocean.com, and ns3.digitalocean.com, which should be put in and can take up to 15 minutes to take effect.']}