2015-05-06 10:58:55 +02:00
|
|
|
GIST
|
|
|
|
====
|
|
|
|
|
|
|
|
GIST is an open-source application to share code.
|
2015-05-10 02:32:24 +02:00
|
|
|
https://www.deblan.io/post/517/gist-est-dans-la-place
|
2015-05-06 10:58:55 +02:00
|
|
|
|
2015-11-30 01:09:59 +01:00
|
|
|
![Gist](https://upload.deblan.org/u/2015-11/565b93a5.png "Gist")
|
2015-05-12 11:13:30 +02:00
|
|
|
|
2015-05-06 10:58:55 +02:00
|
|
|
Requirements
|
|
|
|
------------
|
|
|
|
|
|
|
|
* PHP >= 5.4
|
|
|
|
* GIT
|
2015-05-09 17:42:53 +02:00
|
|
|
* MySQL, PostgreSQL or SQLite
|
2015-05-06 11:04:38 +02:00
|
|
|
* Composer (php)
|
|
|
|
* Bower (node)
|
2015-05-06 10:58:55 +02:00
|
|
|
|
|
|
|
Installation
|
|
|
|
------------
|
|
|
|
|
2015-05-06 11:10:26 +02:00
|
|
|
$ git clone https://gitlab.deblan.org/deblan/gist
|
|
|
|
$ cd gist
|
2015-05-06 10:58:55 +02:00
|
|
|
$ make
|
2015-05-09 17:42:53 +02:00
|
|
|
$ mv propel-dist.yaml propel.yaml
|
2015-05-25 02:39:39 +02:00
|
|
|
$ # EDIT propel.yaml (dsn)
|
2015-05-09 17:42:53 +02:00
|
|
|
$ make propel
|
|
|
|
|
2015-05-10 02:32:24 +02:00
|
|
|
Screencast: https://asciinema.org/a/19814
|
|
|
|
|
2015-05-09 17:42:53 +02:00
|
|
|
### Git
|
|
|
|
|
|
|
|
Git can maybe be downloaded from your system's repositories.
|
2015-05-06 10:58:55 +02:00
|
|
|
|
2015-05-06 23:05:51 +02:00
|
|
|
$ git config --global user.email "you@example.com"
|
|
|
|
$ git config --global user.name "Your Name"
|
|
|
|
|
2015-05-09 17:42:53 +02:00
|
|
|
### Composer
|
2015-05-06 10:58:55 +02:00
|
|
|
|
|
|
|
Composer can maybe be downloaded from your system's repositories.
|
|
|
|
Else, follow the next instructions:
|
|
|
|
|
2015-05-09 17:42:53 +02:00
|
|
|
#### Download
|
2015-05-06 10:58:55 +02:00
|
|
|
|
|
|
|
# With cURL
|
|
|
|
curl -sS https://getcomposer.org/installer | php
|
|
|
|
|
|
|
|
# With Wget
|
|
|
|
wget -O - -q https://getcomposer.org/installer | php
|
|
|
|
|
|
|
|
You can now use it with `php composer.phar [arguments]`.
|
|
|
|
|
2015-05-09 17:42:53 +02:00
|
|
|
#### Executable
|
2015-05-06 10:58:55 +02:00
|
|
|
|
|
|
|
mv composer.phar composer
|
|
|
|
chmod +x composer
|
|
|
|
|
|
|
|
Use it with `./composer [arguments]`.
|
|
|
|
|
2015-05-09 17:42:53 +02:00
|
|
|
#### Install
|
2015-05-06 10:58:55 +02:00
|
|
|
|
|
|
|
Assuming `~/bin` exists ans is in `$PATH`.
|
|
|
|
|
|
|
|
mv composer ~/bin
|
|
|
|
|
2015-05-09 17:42:53 +02:00
|
|
|
#### Dependencies Installation (from `composer.lock`)
|
2015-05-06 10:58:55 +02:00
|
|
|
|
|
|
|
composer install
|
|
|
|
|
2015-05-09 17:42:53 +02:00
|
|
|
#### Dependencies Update (will change `composer.lock`)
|
2015-05-06 10:58:55 +02:00
|
|
|
|
|
|
|
composer update
|
|
|
|
|
2015-05-09 17:42:53 +02:00
|
|
|
### Bower
|
|
|
|
|
2015-05-06 10:58:55 +02:00
|
|
|
|
2015-05-09 17:42:53 +02:00
|
|
|
#### Install
|
2015-05-06 10:58:55 +02:00
|
|
|
|
|
|
|
npm install -g bower
|
|
|
|
|
2015-05-10 01:59:30 +02:00
|
|
|
#### Dependencies Installation (from `bower.json`)
|
2015-05-06 10:58:55 +02:00
|
|
|
|
|
|
|
bower install
|
|
|
|
|
2015-05-10 02:00:04 +02:00
|
|
|
#### Dependencies Update
|
2015-05-06 10:58:55 +02:00
|
|
|
|
2015-05-10 01:59:30 +02:00
|
|
|
bower install
|
2015-05-06 10:58:55 +02:00
|
|
|
|
2015-11-24 19:26:58 +01:00
|
|
|
### Upgrade
|
|
|
|
|
|
|
|
$ make update
|
|
|
|
$ make propel
|
|
|
|
|
2015-05-06 10:58:55 +02:00
|
|
|
Makefile
|
|
|
|
--------
|
|
|
|
|
|
|
|
A Makefile is provided to automate some tasks.
|
|
|
|
|
2015-05-09 17:42:53 +02:00
|
|
|
* `make` will install application's dependencies via Composer and Bower,
|
2015-05-06 10:58:55 +02:00
|
|
|
* `make optimize` will run Composer's autoloader dump script with classmap
|
2015-05-09 17:42:53 +02:00
|
|
|
* `make update` will update the application
|
|
|
|
* `make propel` will generate propel's files
|
2015-09-17 11:41:32 +02:00
|
|
|
* `make run` will run development server on http://127.0.0.1:8080/
|
2015-07-19 18:39:46 +02:00
|
|
|
|
|
|
|
API
|
|
|
|
---
|
|
|
|
|
|
|
|
### Create a new gist
|
|
|
|
|
|
|
|
**POST** /{locale}/api/create
|
|
|
|
Params:
|
|
|
|
|
|
|
|
* ```form[title]```: String (required, can be empty)
|
|
|
|
* ```form[type]```: String (required)
|
|
|
|
Values: html, css, javascript, php, sql, xml, yaml, perl, c, asp, python, bash, actionscript3, text
|
|
|
|
* ```form[content]```: String (required)
|
|
|
|
|
2015-07-19 18:40:49 +02:00
|
|
|
#### Responses:
|
2015-07-19 18:39:46 +02:00
|
|
|
|
2015-09-17 11:45:19 +02:00
|
|
|
* Code ```200```: A json which contains gist's information. Example:
|
2015-07-19 18:39:46 +02:00
|
|
|
```javascript
|
2015-07-19 18:42:22 +02:00
|
|
|
{
|
2015-09-17 11:41:32 +02:00
|
|
|
"url": "https:\/\/gist.deblan.org\/en\/view\/55abcfa7771e0\/f4afbf72967dd95e3461490dcaa310d728d6a97d",
|
2015-07-19 18:42:22 +02:00
|
|
|
"gist": {
|
2015-09-17 11:48:52 +02:00
|
|
|
"Id": 66,
|
2015-07-19 18:42:22 +02:00
|
|
|
"Title": "test prod",
|
|
|
|
"Cipher": false,
|
|
|
|
"Type": "javascript",
|
|
|
|
"File": "55abcfa7771e0",
|
|
|
|
"CreatedAt": "2015-07-19T16:26:15Z",
|
|
|
|
"UpdatedAt": "2015-07-19T16:26:15Z"
|
|
|
|
}
|
|
|
|
}
|
2015-07-19 18:39:46 +02:00
|
|
|
```
|
|
|
|
* Code ```405```: Method Not Allowed
|
|
|
|
* Code ```400```: Bad Request
|
|
|
|
|
2015-11-07 22:13:08 +01:00
|
|
|
### Update an existing Gist
|
|
|
|
|
|
|
|
**POST** /{locale}/api/update/{id}
|
|
|
|
Params:
|
|
|
|
|
|
|
|
* ```{id}```: Gist Id (required)
|
|
|
|
* ```form[content]```: String (required)
|
|
|
|
|
|
|
|
#### Responses:
|
|
|
|
|
|
|
|
* Code ```200```: A json which contains gist's information. Example:
|
|
|
|
```javascript
|
|
|
|
{
|
|
|
|
"url": "https:\/\/gist.deblan.org\/en\/view\/55abcfa7771e0\/abcgi72967dd95e3461490dcaa310d728d6adef",
|
|
|
|
"gist": {
|
|
|
|
"Id": 66,
|
|
|
|
"Title": "test prod",
|
|
|
|
"Cipher": false,
|
|
|
|
"Type": "javascript",
|
|
|
|
"File": "55abcfa7771e0",
|
|
|
|
"CreatedAt": "2015-07-19T16:26:15Z",
|
|
|
|
"UpdatedAt": "2015-07-19T16:30:15Z"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
```
|
|
|
|
* Code ```405```: Method Not Allowed
|
|
|
|
* Code ```400```: Bad Request
|
|
|
|
|
2015-07-19 18:45:01 +02:00
|
|
|
Console
|
|
|
|
-------
|
|
|
|
|
2015-11-21 00:20:44 +01:00
|
|
|
### Create and update gists:
|
2015-07-19 18:45:01 +02:00
|
|
|
|
|
|
|
```
|
2015-11-24 19:14:10 +01:00
|
|
|
$ app/console --help create
|
|
|
|
$ app/console --help update
|
2015-07-19 18:45:01 +02:00
|
|
|
```
|
2015-07-19 18:48:52 +02:00
|
|
|
|
2015-11-24 19:14:10 +01:00
|
|
|
### Create user
|
2015-11-21 00:20:44 +01:00
|
|
|
|
|
|
|
```
|
2015-11-24 23:00:03 +01:00
|
|
|
$ app/console --help user:create
|
2015-11-24 19:14:10 +01:00
|
|
|
```
|
|
|
|
|
|
|
|
### Show stats
|
2015-11-21 00:20:44 +01:00
|
|
|
|
|
|
|
```
|
2015-11-24 19:14:10 +01:00
|
|
|
$ app/console --help stats
|
|
|
|
```
|
|
|
|
|
|
|
|
Configuration
|
|
|
|
-------------
|
2015-11-21 00:20:44 +01:00
|
|
|
|
2015-11-24 19:14:10 +01:00
|
|
|
### API
|
|
|
|
|
|
|
|
#### Personal instance
|
2015-07-19 18:48:52 +02:00
|
|
|
|
2015-10-06 18:28:50 +02:00
|
|
|
If you install Gist on your server, you have to modify the ```base_uri``` of the API.
|
2015-11-21 00:22:50 +01:00
|
|
|
Edit ```app/bootstrap.php.d/60-api.php``` and replace ```https://gist.deblan.org/```.
|
2015-11-24 19:14:10 +01:00
|
|
|
|
|
|
|
### Authentication
|
|
|
|
|
|
|
|
#### Disabling login
|
|
|
|
|
|
|
|
Edit `app/bootstrap.php.d/70-security.php` and modify the value of `$app['enable_login']` with `false`.
|
|
|
|
|
|
|
|
#### Disabling registration
|
|
|
|
|
|
|
|
Edit `app/bootstrap.php.d/70-security.php` and modify the value of `$app['enable_registration']` with `false`.
|
2015-11-24 19:18:00 +01:00
|
|
|
|
|
|
|
### Debug
|
|
|
|
|
|
|
|
`app_dev.php` is the development router. Access is granted for an IP range defined in the same file.
|
2016-02-02 19:31:22 +01:00
|
|
|
|
|
|
|
|
|
|
|
Deployment
|
|
|
|
----------
|
|
|
|
|
2016-02-02 19:32:08 +01:00
|
|
|
Gist uses [Magallanes](http://magephp.com/) to manage deployment.
|
2016-02-02 19:43:55 +01:00
|
|
|
|
|
|
|
### Global installation
|
|
|
|
|
2016-02-02 19:31:22 +01:00
|
|
|
$ composer global require andres-montanez/magallanes
|
2016-02-02 19:32:27 +01:00
|
|
|
# if the envvar PATH contains "$HOME/bin/"
|
2016-02-02 19:31:22 +01:00
|
|
|
$ ln -s ~/.composer/vendor/bin/mage ~/bin/mage
|
|
|
|
|
2016-02-02 19:43:55 +01:00
|
|
|
### Locale installation
|
|
|
|
|
|
|
|
$ composer require andres-montanez/magallanes
|
|
|
|
|
2016-02-02 19:31:22 +01:00
|
|
|
There is an example of the configuration of an environment in `.mage/config/environment/prod.yml-dist`.
|
|
|
|
|
2016-02-02 19:43:55 +01:00
|
|
|
# global installation
|
2016-02-02 19:31:22 +01:00
|
|
|
$ mage deploy to:prod
|
|
|
|
|
2016-02-02 19:43:55 +01:00
|
|
|
# local installation
|
|
|
|
$ ./vendor/andres-montanez/magallanes/bin/mage
|