Giter Site home page Giter Site logo

ts4phpdevs's Introduction

Tripp

For symfony ux part see also: https://github.com/weaverryan/sfcon_2022_ux_workshop/tree/finished

  • Mercure + Streams
    • A) in your controller, render a stream template & send to Mercure
    • B) you can automatically have a stream template rendered whenever an entity is added/updated/deleted

https://typescriptlang.org/play

after start: go to https://tripp.local:3000

How to start local development?

  1. Setup a proxy with nginx (which includes docker-gen)

    Place the following docker-compose.yml in the folder of your choice, e.g. /var/apps/nginx-proxy/ or /<your-home-dir>/workspace/nginx-proxy/.

    version: "3.4"
    
    services:
        nginx-proxy:
            image: jwilder/nginx-proxy:alpine
            container_name: nginx-proxy
            ports:
                - target: 80
                  published: 80
                  protocol: tcp
                - target: 443
                  published: 443
                  protocol: tcp
            volumes:
                - /var/run/docker.sock:/tmp/docker.sock:ro
                - ./certs:/etc/nginx/certs
                - ./vhosts:/etc/nginx/conf.d
            networks:
                - tripp-dev
    
    networks:
        tripp-dev:
           external: true
  2. Install local ssl certificates

    The following could be automated with own Dockerfile including jwilder/nginx-proxy and mkCert - alike to dev-tls docker file.

    First you have to settle on a domain to use for tripp. We will use tripp.local in the following expamples. Using only tripp would be troubling for certificates since most browsers do not accept wildcard certificates for second-level domains: e.g. browser will not accept certs created with *.tripp for subdomain api.tripp

    install mkCert
    # linux
    wget https://github.com/FiloSottile/mkcert/releases/download/v1.4.1/mkcert-v1.4.1-linux-amd64
    sudo mv mkcert-v1.4.1-linux-amd64 /usr/local/bin/mkcert
    sudo chmod +x /usr/local/bin/mkcert
    # macOS
    brew install mkcert
    brew install nss # if you use Firefox
    Install rootCA

    This automatically adds mkcert's rootCA to your systems trusted CAs so you no longer will be bugged by untrusted certificate notifications in your local browser.

    mkcert --install
    create Certs

    Navigate to the nginx-proxy certs volume e.g. cd /var/apps/nginx-proxy/certs or /<your-home-dir>/workspace/nginx-proxy/certs

    mkcert -key-file tripp.local.key -cert-file tripp.local.crt tripp.local *.tripp.local    

    This generates a certificate for all subdomains of tripp.local

  3. setup dns
    # /etc/hosts
    127.0.0.1	tripp.local
  4. start nginx-proxy
    # this need to be run only once 
    docker network create tripp-dev
    # /var/apps/nginx-proxy/ or /<your-home-dir>/workspace/nginx-proxy/
    docker-compose up -d    
  5. create .env
    #<yourWorkSpace>/tripp
    cp .env.dist .env

    Adjust sensible vars like e.g. JWT_KEY and DB_PASSWORD as needed. Make sure the DOMAIN_NAME matches the one used when creating certificates.

  6. add in your .bashrc (or .zshrc)
    $ vi ~/.bashrc
    
    ...
    export HOST_UID=$(id -u)      # UID is now available for docker-compose.yml
    export HOST_GID=$(id -g)      # GID is now available for docker-compose.yml
    
  7. start tripp stack
    docker-compose up -d

    nginx-proxy will create a vhost entry for each of tripp's services which has an environment variable VIRTUAL_HOST set. You can check the created hosts in a volume:

    cat path-to-nginx-proxy/vhosts/default.conf
  8. Load the tripp database for api (only if starting from scratch)

    • copy database dump to web/config/schema
    • access container command line
      bin/bash.sh
    • load database
       composer database-init
  9. access tripp
    via domain names with self signed certificates

    Advantage: There is no need to accept insecure certs on every first website request.

    To access with your mobile devices in your local WAN you have to replace 'tripp.local' with your local ip address:

    • Find local ip address in Windows 7 [1]
    • Find local ip address in Ubuntu [1] [2]
  10. optional: use XDebug
    • Activate XDebug in .env:

      PHP_XDEBUG_ENABLED=1
      
    • PHPStorm setup:

      • Settings... -> Languages & Frameworks -> PHP -> Debug: Check that Port 9003 is specified: debug
      • Start containers:
      $ docker-compose up -d
    • After clicking "Start Listening for PHP Debug Connections" in PHPStorm you can jump to web and cli breakpoints.

    • To activate/deactivate XDebug simply adjust ENV-Variable PHP_XDEBUG_ENABLED in docker-compose.yml and restart containers (docker-compose down && docker-compose up -d)

ts4phpdevs's People

Contributors

robertfausk avatar

Watchers

 avatar

Forkers

pueppiblue

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.