Cookbook: Self-Hosting Directus 9 Headless CMS
Assumption
- Ubuntu 22.04 LTS
- PostgreSQL
- Caddy Proxy
package de.samuelstein.project.configuration; | |
import lombok.Getter; | |
import lombok.Setter; | |
import lombok.ToString; | |
import org.apache.hc.client5.http.impl.classic.HttpClientBuilder; | |
import org.springframework.boot.context.properties.ConfigurationProperties; | |
import org.springframework.context.annotation.Bean; | |
import org.springframework.context.annotation.Primary; | |
import org.springframework.http.client.HttpComponentsClientHttpRequestFactory; |
.docker_build_database: | |
extends: .docker_base | |
variables: | |
PGPASSWORD: postgres | |
POSTGRES_IMAGE: "${CI_REGISTRY}/${CI_PROJECT_PATH}/postgres:latest" | |
SPECIFIC_IMAGE_NAME: database | |
DOCKER_TAG: latest | |
before_script: &docker_build_database_before_script | |
- export DOCKER_IMAGE="${CI_REGISTRY}/${CI_PROJECT_PATH}/${SPECIFIC_IMAGE_NAME}" | |
- *docker_base_before_script |
public ResponseEntity<String> doJsonRequest(HttpMethod httpMethod, String path, Object body) throws URISyntaxException { | |
RestTemplate restTemplate = new RestTemplate(new HttpComponentsClientHttpRequestFactory()); | |
HttpHeaders headers = new HttpHeaders(); | |
headers.setContentType(MediaType.APPLICATION_JSON); | |
headers.add(COOKIE, getWebdriver().manage().getCookieNamed(YOUR_APP_COOKIE_NAME).toString()); | |
headers.setAccept(List.of(MediaType.APPLICATION_JSON, MediaType.TEXT_HTML)); | |
var request = new HttpEntity<>(body, headers); | |
return restTemplate.exchange(new URI("http", null, hostIpAddress, port, path, null, null), httpMethod, request, String.class); |
Type listType = new TypeToken<ArrayList<YourClass>>(){}.getType(); | |
List<YourClass> yourClassList = new Gson().fromJson(jsonArray, listType); |
import model.IFileWatchListener; | |
import org.apache.logging.log4j.LogManager; | |
import org.apache.logging.log4j.Logger; | |
import java.io.IOException; | |
import java.nio.file.*; | |
import java.util.ArrayList; | |
import java.util.List; | |
public class FileWatcher extends Thread { |
/** | |
* This is a wrapper class that registers the font awesome .ttf included in the package. | |
* ControlsFX loads this font dynamically at run time from a CDN. Thus, it works only if Internet | |
* connection is available | |
* . | |
* This class registers an included version of the font. The {@link #init()} method should be called | |
* during the initialization procedure of the application such that the font is available early. | |
* | |
* @author albrecht | |
*/ |
import hudson.model.ListView | |
import jenkins.model.* | |
//Parameters: In case you are running this outside Scriptler, please uncomment and fill the following line. | |
view_name = "ViewName"; | |
vc = Jenkins.instance.getView(view_name).getOwner(); | |
v = vc.getView(view_name); | |
//delete jobs belonging to the view |
// jenkins job dsl plugin is required! | |
// This job will be run through the gitlab projects (except user owned ones) and generate jenkins jobs with maven goal. if there should be no job generated, then the label 'nojob' must be set in repository config. | |
// reads projects from gitlab and creates jobs | |
def gitUrl = '$URL' | |
def privateToken = '$TOKEN' | |
def allowedNamespaces = ['product', 'innovation'] | |
def reposToIgnoreTag = 'nojob' | |
def jobNames = [] |
package utils.filters; | |
import akka.stream.Materializer; | |
import play.Configuration; | |
import play.mvc.Filter; | |
import play.mvc.Http; | |
import play.mvc.Result; | |
import javax.inject.Inject; | |
import java.util.concurrent.CompletionStage; |