asrevo is sample spring cloud project for video it is like social apps it provide uploading video see trending videos follow other people like them video comment them and soon
- eureka> this is service registry for the application
- config> config server that provide central configuration for any service
- auth> provide central authentication for any service
- zuul> provide gateway for the services
- tube> provide the main endpoints for the app display media
- file> upload and unzip files and push them to s3
- ffmpeg> converting video to mp4 format using ffmpeg create and upload thumb for video
- feedback> provide some feedback like followers following likes comments on video and trending feed search
- torrent> provide the ability to download form torrnet
- 1 create github account
- 2 create travis-ci account
- 3 create docker account
- 4 create pivotal account
- 5 create aws account
-
1
[eureka,config,tube,file,ffmpeg,feedback,auth,zuul,torrent]. forEachOrdered({ star(${it}); fork(${it}); add_to_travis(${it}); clone(${it}); }) -
2
[eureka,config]. forEachOrdered({ add_route in "${it}/manifest.yml" }) -
3
[config]. forEachOrdered({ update ORG_REVO_ENV_EUREKA_EXTERNALURL in "${it}/manifest.yml" }) -
4
[tube,file,ffmpeg,feedback,auth,zuul,torrent]. forEachOrdered({ update ORG_REVO_ENV_CONFIG_EXTERNALURL in "${it}/manifest.yml" }) -
5 create aws cloudformation template using this file ENV and provide stack name (env) application.yaml
-
6 create aws CloudFront key pairs and store them in pk-revo.pm and tube.yml
-
7 add accessKey,secretKey,username,password,encoded_password for config and eureka in services.sh note encoded_password=encrypt(password) see
-
8 run ./services.sh
-
9
[eureka,config,tube,file,ffmpeg,feedback,auth,zuul,torrent]. forEachOrdered({ provide this keys to Environment Variables(${it}) //see that we need})
-
10
[eureka,config,tube,file,ffmpeg,feedback,auth,zuul,torrent]. forEachOrdered({ change ${it}/README.md with your ${github_username} in "Build Status url" commit(${it}); push(${it}); sleep(3 minutes); })
[paypal,notifier].
forEach({
implement(${it})
})