I wanted to copy ssh keys to the server so that I could log in without requiring to enter the password. To do that typically I would ssh into the server and copy the public key of my laptop the authorized_keys on the remote server.
I came across a better way and I realized I have been doing it wrong for a very long time and there is a much simpler way to do it, using the ssh-copy-id command.
Just run the following command in the terminal
1
ssh-copy-id username@remote_server_ip
e.g
1
ssh-copy-id ubuntu@108.12.10.198
It will prompt you to enter the password, and then after that, it will copy the public key on your computer to the authorized_keys on the remote computer, and now you will be able to SSH without entering the password.
That’s it! Let me know if you have any questions or comments.
Recently I came across a problem. I created a deploy script that would SSH into the server and run a bunch of commands, and some of those commands required sudo, but when running commands as sudo presented a password prompt, which was a problem.
I solved this by updating the sudoers file in ubuntu. If you ever face this problem all you have to do it update the file /etc/sudoers on your server
1
sudo nano/etc/sudoers
Add this line to the end of the file
1
ubuntu ALL=(ALL)NOPASSWD:ALL
That’s it! Feel free to comment if you have any questions or suggestions.
I wanted to vnc into my tinkerboard, and using the default mac vnc client. I tried different packages, like RealVNC but that has license only for RaspberryPi, then I tried tightvnc but it was not working with the default mac client and getting tigervnc up was also not a smooth process, as it was giving error related to fonts.
Then, finally I came across x11vnc and it worked like a charm. To install it, simply run the following command on your tinkerboard
1
2
sudo apt-get update
sudo apt-get install x11vnc
Once installed you can start the vnc server using:
1
x11vnc-noxrecord-forever
If you want to run it with the password, first set a password using the following command
1
x11vnc-storepasswd
Now you can run the x11vnc with the password, run the command
1
x11vnc-noxrecord-forever-usepw
Now, on the mac if you want to connect to the tinkerboard in the terminal type
1
open vnc://ip_address_of_tinkerboard:5900
It will launch the vnc the client and prompt you to enter the password, and you’ll be in.
That’s it! Feel free to comment if you have any questions or suggestions.
I have a Jenkins server with a private IP address and an NGNIX server with a public IP. I wanted to point the domain for the Jenkins server to the NGINX server and the NGINX server would forward the request the Jenkins server.
I got this working through NGINX proxy pass, here is NGNIX configuration that I have used to get it working.
Assume the domain used for Jenkins server is jenkins.mydomain.com and the IP address of the Jenkins server is 192.168.1.20 running at port 8080.
On the Nginx server we create the file under the sites-available folder, here is the exact path: /etc/nginx/sites-available/jenkins.mydomain.com
I have two software projects and a bunch of websites and databases running on the internet. They cost me around $1000 /mo. in terms of server cost to run, and I was sick of the slow performance and high costs of the computers running in the cloud.
I have been inspired by the Jeff Atwoods blogs posts (particularly this and this) for a long time. When he first blogged about running your own server, is much cheaper in the long run and then his recent blog post on running mini-pc server, and how the performance of the mini-pc was much better than the cloud computing which costs more than $5700 to run over the period of 3 years. Just to be clear nothing beats the flexibility of cloud computing, you can spin up a server in a matter of seconds and it is great for testing out ideas and running your application for some time, which I have been doing, but if you want to run something for a long term you are better off running your own server.
And I have been reading a lot about the cheap 1U server and few years old Xeon CPUs coming to the used market and selling ludicrously cheap, so I finally decided that I will buy a used server and host all my applications myself.
Hosting the server in your home is not a particularly great idea, as data centres are getting quite inexpensive it is best to put the server in the data center, so I decided to put mine in the Nuday networks datacenter. They also offer an IPMI connection to my server over the VPN which is an amazing service that would allow you to restart/boot/manage the server remotely, and it is quite cheap at just $59 CAD /mo. (they took a $99 one-time setup fee as well)
So, I was looking for used servers and I found a great one, a Supermicro 1U server with dual Xeon 6 core CPUs. A total of 12 cores and 24 threads and 64 GB of RAM. I installed the VMware Hyper-v on it and created virtual machines that I require.
I will be writing more about how I configured the server and setup the firewall and everything.
My server is currently running 6 VMs:
MongoDB server
MariaDB server
Nginx server
Dead Simple Chat Server
Dead Simple Screen Sharing Server
Firewall
There is an internal network through all the VMs are connected to each other sort of a VPC that we can have in AWS and the Firewall provides a VPN, so I can connect via VPN and manage the services.
This site is currently running on the Nginx Server along with few other sites, and the performance is really compared as compared to other hosting options.
So far I am very happy with my setup and it costs a fraction to run as compared to the services running in Google Cloud and AWS and is approximately 10 times more powerful.
If you want services to running for a long time then I think hosting your own servers is the best way to go.
That’s it! Feel free to comment if you have any questions or suggestions.