Just make few simple steps below:
git clone https://github.com/devpride/flex-spa-stack project_name
cd project_name
make install
Installation step will trigger some interactive prompt questions on which you must to answer for installation complete.
Some of them:
Your choice: [Install phpMemAdmin]:
#>> [PUSH ENTER] <<
Install to /var/www/phpmemadmin ? [Y/n]
#>> [PUSH ENTER] <<
Enter pass phrase for config/jwt/private.pem:
#>> [PASTE 'API_JWT_PASSPHRASE' VALUE FROM .env FILE] <<
Verifying - Enter pass phrase for config/jwt/private.pem:
#>> [PASTE 'API_JWT_PASSPHRASE' VALUE FROM .env FILE] <<
Enter pass phrase for config/jwt/private.pem:
#>> [PASTE 'API_JWT_PASSPHRASE' VALUE FROM .env FILE] <<
Would you like to create a user account now? [Y/n]: #y
Email: #example@mail.com
Password: #*****
Repeat for confirmation: #*****
Should this user be a superuser? [y/N]: #y
Now go to http://sentry.flex-spa.dev:1940/ and on welcome screen put http://sentry.flex-spa.dev:9000 as Root URL. Other fields and checkboxes are up to you.
Go to http://sentry.flex-spa.dev:1940/sentry/internal/settings/keys/, copy DSN and put it to your .env as SENTRY_DSN value.
Now update backend with:
make re C=backend && make re C=backend_web && make re C=backend_worker && make re C=backend_cron
That's all! Now you are able to use all stack features for developing and support needs of your SPA.
You should remember that FlexSPA run all containers in detach mode by default so you must shut it down manually by running:
make down
If you want make it up again, just run:
make up
Services available out of the box:
- http://flex-spa.dev:1934/ - frontend application web version
- http://m.flex-spa.dev:1934/ - frontend application mobile version
- http://api.flex-spa.dev:1934/ - backend REST API
- http://admin.flex-spa.dev:1934/ - application admin panel
- http://phpmemadmin.flex-spa.dev:1935/ - PhpMemAdmin (login: admin; password: pass)
- http://phpredisadmin.flex-spa.dev:1936/ - PhpRedisAdmin (login: admin (.env:REDIS_ADMIN_USER); password: pass (.env:REDIS_ADMIN_PASSWORD))
- http://elastichq.flex-spa.dev:1937/ - ElasticHQ (First time put http://elasticsearch.flex-spa.dev:9200/ into input and press Connect)
- http://grafana.flex-spa.dev:1938/ - Grafana (login: admin; password: admin)
- http://graphite.flex-spa.dev:1939/ - Graphite web GUI
- http://sentry.flex-spa.dev:1940/ - Sentry
- http://rabbitmqadmin.flex-spa.dev:15672/ - RabbitMQ Management (login: user (.env:RABBITMQ_USER); password: password (.env:RABBITMQ_PASSWORD))
- mysql.flex-spa.dev:3306 - MySQL
- redis.flex-spa.dev:6379 - Redis (port from .env:REDIS_PORT)
- memcached.flex-spa.dev:11211 - Memcached (port from .env:MEMCACHED_PORT)
- statsd.flex-spa.dev:8125 - StatsD (port from .env:STATSD_PORT, on udp://)
- elasticsearch.flex-spa.dev:9200 - ElasticSearch (port from .env:ELASTICSEARCH_PORT)
- rabbitmq.flex-spa.dev:5672 - RabbitMQ (port from .env:RABBITMQ_PORT)
- memcached.sentry.flex-spa.dev:11211 - Memcached for Sentry
- redis.sentry.flex-spa.dev:6379 - Redis for Sentry
- postgres.sentry.flex-spa.dev:5432 - PostgreSQL for Sentry
- smtp.sentry.flex-spa.dev:25 - SMTP server for Sentry
- Make demo SPA that use every service and feature for making all stack capabilities clear to understand.
- Update project documentation for all tools and services and make it more detail.
- General stability of builds
- Cover all services with functional tests
- Add healthcheck tools for stack features
- Add code coverage and auto-build check features
Yes, please ;) A lot of different work here. Together we could do it better. Feel free to make pull requests.