Skip to content

Instantly share code, notes, and snippets.

View ziedHamdi's full-sized avatar
💭
Exploring opportunities

Zied Hamdi ziedHamdi

💭
Exploring opportunities
View GitHub Profile
version: "3.9"
services:
nginx:
container_name: nginx
image: 'nginx:0.1'
ports:
- "80:80"
- "443:443"
volumes:
@ziedHamdi
ziedHamdi / nginx.dockerfile
Created November 16, 2021 12:23
Nginx image that includes certbot installed in
FROM nginx:1.21-alpine
COPY ./data/nginx/. /etc/nginx/conf.d/.
RUN apk add python3 python3-dev py3-pip build-base libressl-dev musl-dev libffi-dev rust cargo
RUN pip3 install pip --upgrade
RUN pip3 install certbot-nginx
RUN mkdir /etc/letsencrypt
@ziedHamdi
ziedHamdi / app.conf
Created November 16, 2021 12:17
Nginx simplest configuration
server {
listen 80;
location / {
proxy_pass http://next_server:3000;
}
location /api/rest/ {
proxy_pass http://graphql_server:4000;
}
}
@ziedHamdi
ziedHamdi / graphqlSetupVisitor.js
Last active October 4, 2021 12:10
/server/middleware/graphqlSetupVisitor.js adds graphql to express
const graphQlServer = graphqlHTTP(async (req, res, graphQLParams) => {
const infraToken = req.header('infraToken');
let user = null;
if (infraToken) {
try {
var _jwt$verify;
_logger.default.debug("infra token found ");
@ziedHamdi
ziedHamdi / [...nextauth].js
Created October 4, 2021 11:40
pages/api/auth/[...nextauth].js
import NextAuth from 'next-auth'
import Providers from 'next-auth/providers'
import jwt from 'jsonwebtoken'
import {TOKEN_SECRET} from "../../../lib/auth";
import logger from "../../../lib/logger";
export default NextAuth({
// Configure one or more authentication providers
providers: [
Providers.Facebook({
@ziedHamdi
ziedHamdi / client.js
Created October 4, 2021 11:08
apollo client.js
import {useMemo} from 'react'
import {ApolloClient, HttpLink, gql} from '@apollo/client'
import merge from 'deepmerge'
import {cache} from './cache'
import {isSSR} from "../constants/util";
import isEqual from 'lodash/isEqual'
import logger from "../lib/logger";
export const APOLLO_STATE_PROP_NAME = '__APOLLO_STATE__'
@ziedHamdi
ziedHamdi / index.js
Last active October 4, 2021 11:25
implementation of getServerSideProps in pages/xyz.js files
export async function getServerSideProps(context) {
const session = await getSession(context)
const client = initializeApollo({})
//await getDataFromTree(Index) replaced by manual client.query calls
const cpl = await client.query({
query: ComplaintsQuery, context: {
headers: {'infra-token': session?.infraToken}
}
})
//...
@ziedHamdi
ziedHamdi / graphql.js
Last active October 4, 2021 13:09
Next.js pages/api/ graphql endpoint
import logger from '../../lib/logger'
import {getSession} from "next-auth/client";
import dynamic from "next/dynamic";
function isTrueStr(str) {
return str === true ||
(str != null &&
str.toString().toLowerCase() === 'true')
}
# Instructions found in the following links
# https://docs.docker.com/engine/install/ubuntu/
# https://docs.docker.com/engine/install/linux-postinstall/
#: clean previous
sudo apt-get remove docker docker-engine docker.io containerd runc
#: install
sudo apt-get update
sudo apt-get install \
# start: docker-compose up (-d for detached mode)
# stop: docker-compose down
version: "3.9"
services:
redis-server:
container_name: redis-server
image: 'redis:6.2-alpine'
networks:
- weally