Skip to content

Commit

Permalink
Readme überarbeitet
Browse files Browse the repository at this point in the history
  • Loading branch information
tbaddade committed Dec 19, 2017
1 parent 29f9ad5 commit 4156d0a
Showing 1 changed file with 189 additions and 49 deletions.
238 changes: 189 additions & 49 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,78 +1,180 @@
# Yak

**Konsole**

Ausführen `$ setup/presetup`
REDAXO wird automatisch installiert und eine vorhandene Instanz wird überschrieben. Wenn das nicht gewünscht ist, die Zeilen im presetup entsprechend auskommentieren.

**neue REDAXO Struktur sieht wie folgt aus**
## Vorbereitung

```
- /assets/
- fonts/
- images/
- scripts/
- styles/
- svgs/
- /bin/
- /gulfile.js/
- assets/
- tasks/
- /public/
- assets/
- addons/
- core/
1. Ordner für das Projekt lokal anlegen (Bsp. `~/Sites/yak.project`)

1. privates Github Repo erstellen und via Git in Projektordner klonen

1. Yak holen und in Projektordner legen

1. `hosts` Datei öffnen und ergänzen

```
127.0.0.1 project.yak
127.0.0.1 www.project.yak
```

1. `httpd-vhosts.conf` öffnen und ergänzen (`USERDIR` und ggf. `yak.project` anpassen)

```
<VirtualHost *:80>
ServerName project.yak
ServerAlias www. project.yak
DocumentRoot "/Users/USERDIR/Sites/yak.project/public"
ErrorLog "/Users/USERDIR/Sites/Logs/yak.project-error_log"
CustomLog "/Users/USERDIR/Sites/Logs/yak.project-access_log" common
<Directory "/Users/USERDIR/Sites/yak.project/public">
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
# Nur bei Apache 2.4
# Require all granted
</Directory>
</VirtualHost>
```


## Konsole

1. Apache neu starten

1. Terminal öffnen

Ausführen `$ cd ~/Sites/yak.project`


3. REDAXO wird mit Ausführung des nächsten Befeheles automatisch installiert und eine vorhandene Instanz wird überschrieben. Wenn das nicht gewünscht ist, die Zeilen im presetup entsprechend auskommentieren.

Ausführen `$ setup/presetup`


**Nach dem presetup sollte die neue REDAXO Struktur wie folgt aussehen**

```
- /assets/
- fonts/
- images/
- scripts/
- styles/
- svgs/
- media/
- redaxo/
- /src/
- addons/
- core/
- module/
- templates/
- /var/
- cache/
- data/
```
- /bin/
- /gulfile.js/
- assets/
- tasks/
- /public/
- assets/
- addons/
- core/
- fonts/
- images/
- scripts/
- styles/
- svgs/
- media/
- redaxo/
- /src/
- addons/
- core/
- module/
- templates/
- /var/
- cache/
- data/
```

4. REDAXO Setup via Browser und Url `project.yak/redaxo` starten

**weitere Einstellungen und VOrraussetzungen
## weitere Einstellungen und Vorraussetzungen

* developer AddOn installieren, falls nicht über das Setup bereits getan
* ydeploy AddOn installieren, falls nicht über das Setup bereits getan

**Einstellungen Developer

Lokal
* Templates synchronisieren
* Module synchronisieren
* Actions synchronisieren
* Im Frontend synchronsieren (nur wenn als Admin in Backend eingeloggt)
* Im Backend synchronsieren (nur wenn als Admin eingeloggt)
* Datei- und Ordnernamen aktuell halten
* Item-Ordner löschen nach dem Löschen eines Items über das Backend

Live
### Deployment

_alle Befehle gehen direkt vom Projektordner aus._ `~/Sites/yak.project`

- Datenbankdump der lokalen Instanz erstellen und auf Live via Adminer oder Datenbanktool einspielen
- `deploy.php` in der lokalen Instanz für Server angepassen
- Ausführen `$ bin/console ydeploy:diff`
- lokalen Stand auf Github pullen
- Ausführen `$ dep deploy` (hier kommt es absichtlich noch zu einem Fehler, aber die Grundstruktur ist schon mal auf dem Server)

**auf dem Live Server via FTP Client**

- `src/core/default.config.yml` nach `data/core/config.yml` kopieren

This comment has been minimized.

Copy link
@staabm

staabm Dec 19, 2017

Contributor

falls relevant: man kann mit dem deployer auch "remote commandos" ausführen, d.h. z.b. nen mv an den server schicken, siehe https://deployer.org/docs/cli#running-arbitrary-commands

d.h. man brauch eigentlich keinen ftp client

This comment has been minimized.

Copy link
@tbaddade

tbaddade Dec 19, 2017

Author Member

Danke für den Hinweis. Werden wir mit aufnehmen.

- `data/core/config.yml` öffnen und
- `setup` auf `false`
- Datenbankverbindung der Live-Instanz eingetragen

- Ausführen `$ dep deploy:unlock`
- Ausführen `$ dep deploy` (diesmal sollte kein Fehler mehr kommen)
- Arbeitsdomain auf `current/public` zeigen lassen (Der Pfad muss zumeist per Hand notiert werden, da es ein Symlink ist)

Wenn man Lokal Datenbankänderungen vorgenommen hat, zuvor `$ bin/console ydeploy:diff` aufrufen, und die geänderten bzw. neu angelegte Dateien mit committen.


* Templates synchronisieren
* Module synchronisieren
* Actions synchronisieren


** Über folgende Einträge und Script kann man eine Kennung eintragen in welcher Umgebung man sich befindet
### Einstellungen Developer

* Über Adminer oder Datenbanktool in die rex_config Tabelle folgenden Eintrag:
** namespace: project, key: env, value: production oder developer
**Lokal**

- [x] Templates synchronisieren
- [x] Module synchronisieren
- [x] Actions synchronisieren
- [x] Im Frontend synchronsieren (nur wenn als Admin in Backend eingeloggt)
- [x] Im Backend synchronsieren (nur wenn als Admin eingeloggt)
- [x] Datei- und Ordnernamen aktuell halten
- [_] Ordnernamen mit ID als Suffix
- [_] Präfix für Dateinamen (enthält ID und Name)
- [_] Umlaute in Namen beibehalten (Deprecated; die Option wird in der nächsten Major-Version wegfallen und somit immer deaktiviert sein)
- [x] Item-Ordner löschen nach dem Löschen eines Items über das Backend

folgenden Code in die Boot.php vom project AddOn und die CSS Dateien entsprechend ergänzen im project assets ordner:

**Live**

- [x] Templates synchronisieren
- [x] Module synchronisieren
- [x] Actions synchronisieren
- [_] Im Frontend synchronsieren (nur wenn als Admin in Backend eingeloggt)
- [_] Im Backend synchronsieren (nur wenn als Admin eingeloggt)
- [_] Datei- und Ordnernamen aktuell halten
- [_] Ordnernamen mit ID als Suffix
- [_] Präfix für Dateinamen (enthält ID und Name)
- [_] Umlaute in Namen beibehalten (Deprecated; die Option wird in der nächsten Major-Version wegfallen und somit immer deaktiviert sein)
- [_] Item-Ordner löschen nach dem Löschen eines Items über das Backend




### Instanzen farblich kenntlich machen

Über folgende Einträge und Skripte kann man eine Kennung eintragen in welcher Umgebung man sich befindet

Über Adminer oder Datenbanktool in die `rex_config` Tabelle der **Live Instanz** folgenden Eintrag:

| Spalte | Wert |
| ------ | ---- |
| **namespace** | project |
| **key** | env |
| **value** | production |


Hat man das [Yakme AddOn](https://github.com/yakamara/yakme) installiert, kann nachfolgender Part ignoriert werden.

Folgenden Code in die `boot.php` vom `project` AddOn und die CSS Dateien entsprechend im project assets Ordner ergänzen:

```
css/ydeploy-production.css
css/ydeploy-development.css
css/ydeploy-production.css
css/ydeploy.css
```

```
Expand Down Expand Up @@ -101,3 +203,41 @@ if (\rex::isBackend() && \rex_addon::get('ydeploy')->isAvailable()) {
```



### zusätzliche Tabellen synchronisieren lassen

Da man lokal am Anfang zumeist die Struktur wie vom Kunden gewünscht aufsetzt und ggf. auch die ersten Slices als Beispiele in der Live-Instanz bereitstellen möchte, kann man mit folgendem Skript diese Tabellen synchronisieren.

Sobald an der Live-Instanz redaktionell gearbeitet wird, sollte das Skript wieder entfernt werden. Ansonsten gehen die Daten der Live-Instanz verloren.

Das Skript in die `boot.php`des `project` AddOns der **lokalen Instanz** einfügen

```php
// YDeploy
// - - - - - - - - - - - - - - - - - - - - - - - - - -
if (\rex::isBackend() && \rex_addon::get('ydeploy')->isAvailable()) {

rex_extension::register('PACKAGES_INCLUDED', function () {
$config = \rex_addon::get('ydeploy')->getProperty('config');

// zusätzliche Tabellen synchronisieren
// nie action, module, module_action, template definieren
// werden über developer AddOn synchronisiert
$config['fixtures']['tables'] = array_merge(
[
'article' => null,
'article_slice' => null,
'clang' => null,
'media' => null,
'media_category' => null,
'sprog_wildcard' => null,
],
$config['fixtures']['tables']
);

\rex_addon::get('ydeploy')->setProperty('config', $config);
});
}
```

Beim Befehl `$ bin/console ydeploy:diff` werden jetzt die obigen Tabellen mit berücksichtigt.

0 comments on commit 4156d0a

Please sign in to comment.