Slide 1

Slide 1 text

I have a dream! (a look at some of our developer tools) Simon Wheatley, @simonwheatley © Camdiluv ♥ - https://www.flickr.com/photos/camdiluv/4441155157/in/photostream/

Slide 2

Slide 2 text

I’m Simon, nice to meet you all

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

© Christian Payne - http://www.flickr.com/photos/christianpayne/3524859632/in/photostream/

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

© Camdiluv ♥ - https://www.flickr.com/photos/camdiluv/4441155157/in/photostream/ I have a dream…

Slide 9

Slide 9 text

…about development environments © Christian Senger - https://www.flickr.com/photos/30928442@N08/6343274075

Slide 10

Slide 10 text

Easier to get started © Mark Walker - https://www.flickr.com/photos/markwalker/3749673425

Slide 11

Slide 11 text

Easier to develop © NASA/MSFC/David Higginbotham - https://www.flickr.com/photos/nasamarshall/12308145634

Slide 12

Slide 12 text

Easier to deploy © Elle Jay Fisher - https://www.flickr.com/photos/ellejayfish/2815231166

Slide 13

Slide 13 text

No content

Slide 14

Slide 14 text

Define a machine (or machines) © Don - https://www.flickr.com/photos/donsolo/2886355241

Slide 15

Slide 15 text

Bring your own provisioner © Brett Davies - https://www.flickr.com/photos/photosightfaces/9696940889

Slide 16

Slide 16 text

© Christian Senger - https://www.flickr.com/photos/30928442@N08/6343274075 We have a development environment!

Slide 17

Slide 17 text

Party time! © Mircea - https://www.flickr.com/photos/morphomir/2407451929

Slide 18

Slide 18 text

Nearly… © James Emery - https://www.flickr.com/photos/emeryjl/506966918

Slide 19

Slide 19 text

What does a project look like? © Russ - https://www.flickr.com/photos/89119745@N00/8098903775

Slide 20

Slide 20 text

Auto Site Setup © Steve Jurvetson - https://www.flickr.com/photos/jurvetson/6219463656/in/photostream/

Slide 21

Slide 21 text

vvv-hosts

Slide 22

Slide 22 text

vvv-nginx.conf

Slide 23

Slide 23 text

vvv-init.sh

Slide 24

Slide 24 text

vvv/www/my-project/ vvv/www/my-project/vvv-hosts vvv/www/my-project/vvv-nginx.conf vvv/www/my-project/vvv-init.sh

Slide 25

Slide 25 text

vvv-hosts

Slide 26

Slide 26 text

vvv-hosts # Add as many hostnames # as you need here site-name.dev subdomain.site-name.dev another.site-name.dev

Slide 27

Slide 27 text

vvv-nginx.conf

Slide 28

Slide 28 text

vvv-nginx.conf server { listen 80; listen 443 ssl; server_name site-name.dev; root {vvv_path_to_folder}/htdocs; include /etc/nginx/nginx-wp-common.conf; }

Slide 29

Slide 29 text

vvv-nginx.conf server { listen 80; listen 443 ssl; server_name site-name.dev *.site- name.dev; root {vvv_path_to_folder}/htdocs; include /etc/nginx/nginx-wp-common.conf; }

Slide 30

Slide 30 text

vvv-init.sh

Slide 31

Slide 31 text

https://github.com/cftp/vvv-init/

Slide 32

Slide 32 text

Private repositories © Markus Schöpke - https://www.flickr.com/photos/markusschoepke/72431367

Slide 33

Slide 33 text

Our robot friend © Kristof - https://www.flickr.com/photos/legoalbert/8868875522

Slide 34

Slide 34 text

Authentication

Slide 35

Slide 35 text

Man in the middle attack!

Slide 36

Slide 36 text

vvv-init.sh # Prepopulating known good host signatures mkdir -p ~/.ssh touch ~/.ssh/known_hosts IFS=$'\n' for HOST in $(cat "ssh/known_hosts"); do # …loop over and add the hosts if # not already present… done # http://tmx0009603586.com/help/en/ entpradmin/Howto_KHCreate.html

Slide 37

Slide 37 text

vvv-init.sh # Loading a key for a private repository ssh-agent bash -c \ "ssh-add ssh/cftp_deploy_id_rsa; \ git clone $REPO_SSH_URL htdocs;"

Slide 38

Slide 38 text

vvv-init.sh # Create the database if it’s not there mysql -u root --password=root \ -e "CREATE DATABASE IF NOT EXISTS \ $DB_NAME; GRANT ALL PRIVILEGES ON \ $DB_NAME.* TO wp@localhost \ IDENTIFIED BY 'wp';"

Slide 39

Slide 39 text

vvv-init.sh # Create WordPress config if [ ! -f htdocs/wp-config.php ]; then wp core config --dbname="$DB_NAME" \ --dbuser="wp" --dbpass="wp" \ --dbhost="localhost" \ --extra-php <

Slide 40

Slide 40 text

vvv/www/my-project/ vvv/www/my-project/htdocs/ vvv/www/my-project/htdocs/(project stuff) vvv/www/my-project/vvv-hosts vvv/www/my-project/vvv-nginx.conf vvv/www/my-project/vvv-init.sh

Slide 41

Slide 41 text

No content

Slide 42

Slide 42 text

Define your structure © Popupology - https://www.flickr.com/photos/popupology/4750769171/

Slide 43

Slide 43 text

Separate repositories © Glyn Young - https://www.flickr.com/photos/glynlowe/8494249993

Slide 44

Slide 44 text

© Elle Jay Fisher - https://www.flickr.com/photos/ellejayfish/2815231166 Deployment

Slide 45

Slide 45 text

© Glyn Young - https://www.flickr.com/photos/glynlowe/8494249993 Separate repositories © See-ming Lee - http://www.flickr.com/photos/seeminglee/4556156477/in/photostream/

Slide 46

Slide 46 text

© zev - https://www.flickr.com/photos/fiddleoak/6777207215 Build script!

Slide 47

Slide 47 text

Packaged © Edward Baker - https://www.flickr.com/photos/edwbaker/4268008033

Slide 48

Slide 48 text

© Elle Jay Fisher - https://www.flickr.com/photos/ellejayfish/2815231138/ Deploy!

Slide 49

Slide 49 text

Are we there yet? © Joey Rozier - https://www.flickr.com/photos/mrjoro/89187454

Slide 50

Slide 50 text

P.S. we’re looking for developers ([email protected]) © Yaniv Golan - https://www.flickr.com/photos/yanivg/2384546987

Slide 51

Slide 51 text

questions? © Tom - http://www.flickr.com/photos/an_untrained_eye/6630719431/