Dynamic DNS on FreeBSD and NoIP.com

no-ip is the only free dynamic IP address provider that provides a client for FreeBSD (or to give credit where it is due, that some kind volunteer ported to FreeBSD).

Regardless, the service works and I have no complaints, other than forgetting how to set it up when I build a new server. So here, for my reference, is how to set up the client on FreeBSD.

  • Create an account on no-ip, then create a domain (either pay to register a domain, or use one of the free ones available).
  • Update your ports tree, then build and install the client. I found you can install the binary using pkg, but the only way to create the binary configuration file seems to with the port. 
    % cd /usr/ports/dns/noip/
    % sudo make install
  • Create the client configuration file.
    % sudo make conf
  • You will be prompted for your no-ip username and password, network interface and hostname (say No when asked if you want to update all your hosts, you’ll then be prompted for each of the hostnames you have registered (fwiw, the configu file is /usr/local/etc/no-ip2.conf).
  • Edit /etc/rc.conf to start noip at boot.
    noip_enable=”YES”
  • Start the noip service.
    % sudo service start noip service status noip

Install ERPNext on bare metal Ubuntu

This post is essentially the same as my Install ERPNext on bare metal Centos 7, but using Ubuntu 64b 14.04.1-server. I ran into difficulty installing ERPNext on Centos, and now understand some subtle but critical differences between a DigitalOcean Centos 7 droplet, and a Centos 7 install on bare metal using the Centos Everything-DVD ISO. As a result I’m switching to Ubuntu, which is also supported by setup_frappe.sh.

I’m starting with a Dell Optiplex 755 and the DVD iso file for 64-bit Ubuntu 14.04.1 LTS .

  • Boot into the MEBx BIOS (Ctrl-P instead of F2) and disable Intel ANT ME BIOS Extension (that doesn’t play nice). ThinkWiki has a good article, and besides knowing the default password to get in (admin), you MUST change the password – and it MUST be a strong password
  • install Ubuntu from ubuntu-14.04.1-server-amd64.iso
    • server name (whizzer.local), timezone, and first user
    • disk partitioning – select Guided – use entire disk and set up LVM
    • no automatic updates – automatic updates could be distracting, and it can probably be figured out later
    • collections: OpenSSH server, Mail server, Samba file server
      • mail server configuration type: Local only (The only delivered mail is the mail for local users. There is no network.).
        • Other options: 1) Internet site (mail is sent and received directly using SMTP), 2) Internet with smarthost (mail is received directly using SMTP or by running a utility such as fetchmail. Outgoing mail is sent using a smarthost.), and 3) Satellite system (All mail is sent to another machine, called a ‘smarthost’ for delivery.). I don’t think this will handle having virtual users (instead of system users with system accounts).
      • Postfix Configuration: System mail name: whizzer.local All mail addresses default to here if a host isn’t specified.
      • Create SSL certificate (name: localhost)
  • Reboot!
  • Fix “no talloc stackframe at ../source3/param/loadparm.c:4864, leaking memory”
    • http://ubuntuforums.org/showthread.php?t=2214042
  • connect using WinSCP and copy public ssh key to /root/.ssh/, also copy authorized_hosts and id_rsa (openssh), and reboot (don’t know how to stop/start ssh on Ubuntu either).
  • follow Easy Way in ERPNExt frappe bench README.md
  • point browser at the server ip address
    • server produced ERPNext login screen, so it seems the basics are working.
  • Access the server from a browser (port 80), and sign into ERPNext as “Adminstrator” using the password output at the end of the setup_frappe.sh execution.
  • Backup the database after completing the setup wizard.

Compared to Centos, wkhtmltopdf installed correctly, and did not have to be manually installed afterwards.

setup_frappe.sh log

dale@hotstuff:~$ wget https://raw.githubusercontent.com/frappe/bench/master/install_scripts/setup_frappe.sh
--2014-11-20 03:49:46--  https://raw.githubusercontent.com/frappe/bench/master/install_scripts/setup_frappe.sh
Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 23.235.47.133
Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|23.235.47.133|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 11561 (11K) [text/plain]
Saving to: ‘setup_frappe.sh’

100%[===============================================================================================>] 11,561      --.-K/s   in 0s

2014-11-20 03:49:47 (61.5 MB/s) - ‘setup_frappe.sh’ saved [11561/11561]

dale@hotstuff:~$ sudo bash setup_frappe.sh --setup-production
[sudo] password for dale:
Installing for Ubuntu trusty amd64
In case you encounter an error, you can post on https://discuss.frappe.io

Adding debian mariadb repo
Installing packages for Ubuntu. This might take time...
Installing wkhtmltopdf
Adding frappe user
setup_frappe.sh: line 300: hash: pip-2.7: not found
setup_frappe.sh: line 302: hash: pip2.7: not found
Installing frappe-bench
Setting up first site

Frappe/ERPNext is installed successfully and is running on port 80.
Frappe password: xxxxx
MariaDB root password: xxxxx
Administrator password: xxxxx

The passwords are also stored at ~/frappe_passwords.txt
You can remove this file after making a note of the passwords.
dale@hotstuff:~$ 

Backup database

Maybe…

systemctl status mariadb.service
mysqldump -u root -p --databases site1.local > ~/erpnextbkup/erpnext-1.sql

Restore database

Maybe…

mysql -u root -p site1.local < ~/erpnextbkup/erpnext-1.sql

Communicating with an Open Source Project Community

When the ERPNext project was starting up, I recommended being explicit regarding controlling various rights for the good of the project:

  • source code license
  • source code copyright ownership
  • name and logo trademark control

Seeing the project today, I commend the ERPNext team for their professionalism and being up front and clear about the rights, and will use this post as an excuse to experiment with the ERPNext project’s stated preferences for sharing code snippets and screen shots when posting to the project’s message board.

All very cool, and I really like the message board.

Also, I found out Greenshot, an open-source screenshot application for Windows, will send directly to imgr. Very cool, but I don’t understand how providing this anonymous service benefits imgur, maybe the images will be gone in 24 hours. I’ll check back tomorrow.

ERPNExt README.md file from Github

Install ERPNext on bare metal Centos 7

The procedure here is essentially the same as Install ERPNext on Digital Ocean Centos 7, but updated for a bare metal server.

Here are my steps, described very briefly again. I’m starting with a Dell Optiplex 755 and Centos 7 Everything-DVD.

  • Boot into the MEBx BIOS (Ctrl-P instead of F2) and disable Intel ANT ME BIOS Extension (that doesn’t play nice). ThinkWiki has a good article, and besides knowing the default password to get in (admin), you MUST change the password – and it MUST be a strong password
  • install Centos from the “Everything-DVD”
    • use “Infrastructure Server” profile with add-ons: E-mail server, and File and Storage Server (CIFS…)
    • enable networking and enter the hostname (e.g. whizzer.local)
    • set root password (no user creation is needed)
  • Disable firewalld to allow remote clients to connect to the server (otherwise you will need to create a firewall rule.systemctl stop firewalld systemctl disable firewalld systemctl status firewalld
  • Disable SELinux to allow Nginx to respond to remote client requests (otherwise you will need to create SELinux rule) *ERPNext should be updated shortly and any necessary SELinux rules created during install).vi /etc/selinux/config

set SELINUX=disabled

  • connect using WinSCP and copy public ssh key to /root/.ssh/, also copy authorized_hosts and id_rsa (openssh), and rebootsystemctl reload sshd.service
  • update systemyum check update yum update

Follow the Easy Way in ERPNExt frappe bench README.md

  • wkhtmltopdf couldn’t be installed and was skipped (too bad, I need that!)
  • “pip-2.7 not found”, but pretty sure this message was informational and not an error.

Point browser at the server ip address.

  • server produced ERPNext login screen, so it seems the basics are working.
  • install wkhtmltopdf manually (appears the project has changed its hosting recently). When creating a test PDF from a web URL, a LOT of “unable to allocate memory” error messages were displayed, but the test PDF was created and wkhtomdopdf appears to be working correctly. For now, I’ll assume the errors were due to not being able to load some user thumbnail pics included on the source page.

Access the server from a browser (port 80) * Sign into ERPNext as “Adminstrator” using the password output at the end of the setup_frappe.sh execution. * The wizard runs after logging in. I’ll continue configuring ERPNext later after which I’ll perform a manual backup of the database.

setup_frappe.sh log

[root@whizzer ~]# wget https://raw.githubusercontent.com/frappe/bench/master/install_scripts/setup_frappe.sh
--2014-11-22 01:30:19--  https://raw.githubusercontent.com/frappe/bench/master/install_scripts/setup_frappe.sh
Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 23.235.47.133
Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|23.235.47.133|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 11561 (11K) [text/plain]
Saving to: ‘setup_frappe.sh’

100%[=========================================================================>] 11,561      --.-K/s   in 0.1s

2014-11-22 01:30:20 (77.8 KB/s) - ‘setup_frappe.sh.1’ saved [11561/11561]

[root@whizzer ~]# sudo bash setup_frappe.sh --setup-production
Installing for centos 7 amd64
In case you encounter an error, you can post on https://discuss.frappe.io

Adding centos mariadb repo
Installing packages for centos. This might take time...
Installing wkhtmltopdf
Cannot install wkhtmltodpdf. Skipping...
Configuring CentOS services
Starting services
Adding frappe user
setup_frappe.sh: line 300: hash: pip-2.7: not found
Installing frappe-bench
Setting up first site

Frappe/ERPNext is installed successfully and is running on port 80.
Frappe password: xxxxx
MariaDB root password: xxxxx
Administrator password: xxxxx

The passwords are also stored at ~/frappe_passwords.txt
You can remove this file after making a note of the passwords.
[root@whizzer ~]#

install wkhtmltopdf

Stay tuned.

Backup database

systemctl status mariadb.service
mysqldump -u root -p --databases site1.local > ~/erpnextbkup/erpnext-1.sql

Restore database

mysql -u root -p site1.local < ~/erpnextbkup/erpnext-1.sql