Bitnami Tomcat 8.5 - native macOS installation cheatsheet


Default install

  • location of apps/sites installed by default: /Applications/bitnami-tomcat/apache-tomcat/webapps/
    • docs/
    • examples/
    • host-manager/: Tomcat Virtual Host Manager
    • manager/: Tomcat manager above
    • ROOT/: Bitnami index page & default Tomcat site above

    Install own app

    The guide above has a paragraph "How To Create A Custom Java Application?". That didn't work for me. Instead, much simpler to drop the app's war file to /Applications/bitnami-tomcat/apache-tomcat/webapps/

    • E.g. you can try with this "hello world" app. You don't even need to restart any server for this one. Otherwise use BAM.

    Installing Ethereum's geth on macOS

    A quick guide of what worked for me. 

    Geth is the official implementation that allows you to run an Ethereum node. There are several others.

    I installed it with Homebrew based on the official geth guide for macOS.

    Homebrew installation:

    $ su admin
    $ /usr/bin/ruby -e "$(curl -fsSL"

    Geth installation:

    $ su admin
    $ brew tap ethereum/ethereum
    $ brew install ethereum

    Verify (as regular user):

    $ geth
    • wait for message "Starting P2P networking"
    • interrupt (Ctrl-C)
    • check that there are no obvious errors

    Setting up an Ethereum node on the Rinkeby testnet

    Warning: this worked for me on macOS as of August 2017. Over time you can expect some/most/all of the information here to have changed.

    There are several testnets, a number of them old/deprecated. The latest seem to be Kovan and Rinkeby. Kovan seems to work only with Parity while Rinkeby seems to work only with geth.

    You will need to install geth first.

    I mostly followed this guide.

    I tried first the experimental light mode but I got errors, so I tried with the full mode. Not a big deal at this moment because the size on disk is below 1GB and it took around one hour to download/build with a 2011 macbook Air.

    I prefer to make the data directory explicit (where the blockchain files will be stored), so I first create one on a disk of my choice. Also I will work from that directory, so I will assume all commands are entered from it.

    $ mkdir /path/to/rinkeby
    $ cd /path/to/rinkeby

    intitalise with genesis block

    $ curl -O $ geth --datadir=. init rinkeby.json

    load blockchain 

    $ geth --networkid=4 --datadir=. --ethstats='yournode:Respect my authoritah!' --bootnodes=enode://a24ac7c5484ef4ed0c5eb2d36620ba4e4aa13b8c84684e1b4aab0cebea2ae45cb4d375b77eab56516d34bfbd3c1a833fc51296ff084b770b94fb9028c4d25ccf@ --cache=1024

    Wait. You will see the INFO message "Block synchronisation started" then many INFO lines starting with "Imported...". Sync is in progress... 

    • Note the 1GB cache, you can use less or more depending on your available memory
    • Network id 4 corresponds to the Rinkeby chain
    • Blockchain data will be stored in geth/

    Check blockchain sync progress

    While the node is up & running (the above command) you can get info about the blockchain sync progress (among other data) through the JavaScript console. In another terminal window type:

    $ cd /path/to/rinkeby
    $ geth attach ipc:geth.ipc

    At the ">" prompt you can type, e.g.

    > eth
    > eth.syncing
    > adm
    > adm.peers

    You can double check you are seeing the right data progress by looking at the last block at home page.

    Note that the "NOTE...Importing..." messages include a number parameter which is the block being processed.

    Getting free (worthless) ether for testing

    Create a testing account

    Create an account, enter password, get its address (account data will be saved to keystore/):

    $ geth --datadir=. account new
    ...(enter password):..
    Address: {559b0e5a899d9ef4c04ee35ccbefab2e6d7f06da}

    That is the address I got. In order to use the faucet & get ether into this account, first create a github gist with just the hash in it (remember to prepend with "0x"). In my case:

    Now use your gist URL in the faucet feature at

    I requested 3 ETH, then I searched etherscan with my address to verify I got them:

    Next verification step would be to verify that locally we also get the correct balance.

    We first verify it is taking the accounts we created (files in keystore/)

    > eth.accounts
    ["0x559b0e5a899d9ef4c04ee35ccbefab2e6d7f06da", "0x62c8681441620cb0574fcee27d6085529067b8da"]

    The first one (index 0) is the one I got my 3 ETH, let's see if they are on our local blockchain (balance for account 0):

    > web3.fromWei(web3.eth.getBalance(web3.eth.accounts[0]));


    Now we may keep using geth, or a wallet for a nice UI.

    Share a Mercurial repository on github (macOS)

    Local macOS configuration

    Python & Mercurial

    This was tested on macOS El Capitan, with Pyhton 2.7 and Mercurial 4.2.2

    Install Hg-Git

    You will need the Hg-Git Mercurial plugin.

    It can be installed with Python's package installer pip.

    Install pip first:

    $ wget
    $ python

    Install Mercurial (eventually) & Hg-Git:

    $ sudo pip install mercurial
    $ sudo pip install hg-git

    Enable the extension:

    $ vi ~/.hgrc:

    hggit =

    SSH key for github

    create SSH key (details)

    • ssh-keygen -t rsa -b 4096 -C ""

    add it to your github account (details)

    • $ pbcopy < ~/.ssh/
    • Github: Settings -- SSH / GPG Keys -- New SSH key -- paste clipboard

    Configure & share repository

    create empty github repository

    • create on github
    • copy its URL
    configure local empty repository
    $ mkdir myrepo
    $ cd myrepo
    $ hg init

    set username & include github URL as default 
    $ vi .hg/hgrc

    username = Someone Example

    default = git+ssh://

    Push & pull

    Upload local changes to github

    hg addremove
    hg commit
    hg bookmark -r default master
    hg push

    Integrate locally changes made on github

    hg pull -u

    Looking for a Web Designer and/or Front End developer to join a future startup in Valencia

    We are building a team that will participate in the startup acceleration program by Bbooster.

    This is an intensive program of 4 months (June to September), at the end of which we expect to get funding (65% of the projects got it in past editions and we believe ours is among the best :-).

    Ideally full-time on-site in Valencia as a founder, but we are also open to some other kind of collaboration like part-time or remote.

    The project will be an internet portal initially focused in the tourism sector and collaborative economy. 

    Current team members have expertise in business, marketing and backend development. We need to cover the graphical design/UI/front end area.

    Interested? Contact me on Linkedin