Giter Site home page Giter Site logo

blog-server's Introduction

Instantly generate production-ready Node.js backend apps ๐Ÿš€

dashboard

Introduction

Amplication is a robust, open-source development platform designed to revolutionize the creation of scalable and secure Node.js applications. We eliminate repetitive coding tasks and deliver production-ready infrastructure code, meticulously tailored to your specifications and adhering to industry best practices.

Our user-friendly interface fosters seamless integration of APIs, data models, databases, authentication, and authorization. Built on a flexible, plugin-based architecture, Amplication allows effortless customization of the code and offers a diverse range of integrations.

With a strong focus on collaboration, Amplication streamlines team-oriented development, making it an ideal choice for groups of all sizes, from startups to large enterprises. Our platform enables you to concentrate on your business logic, while we handle the heavy lifting.

Experience the fastest way to develop Node.js applications with Amplication.

Features

apis ย  data-models

plugins ย  microservices

own-your-code ย  customize-code

Usage

To get started with Amplication, the hosted version of the product can be used. You can get started immediately at app.amplication.com. After the login page, you will be guided through creating your first service. The website provides an overview of the application, additional information on the product and guides can be found in the docs.

Tutorials

Development

Alternatively, instead of using the hosted version of the product, Amplication can be run locally for code generation purposes or contributions - if so, please refer to our contributing section.

Pre-requisites
To be able to start development on Amplication, make sure that you have the following prerequisites installed:

  • Node.js
  • Docker
  • Git
Running Amplication

Note It is also possible to start development with GitHub Codespaces, when navigating to < > Code, select Codespaces instead of Local. Click on either the +-sign or the Create codespace on master-button.

Amplication is using a monorepo architecture - powered by Nx Workspaces - where multiple applications and libraries exist in a single repository. To setup a local development environment the following steps can be followed:

BEFORE you run the following steps make sure:

  1. You have typescript installed locally on you machine npm install -g typescript

  2. You are using a supported node version (check engines node in the package.json)

  3. You are using a supported npm version (check engines npm in the package.json)

  4. You have docker installed and running on your machine

  5. Clone the repository and install dependencies:

git clone https://github.com/amplication/amplication.git && cd amplication && npm install
  1. Run the setup script, which takes care of installing dependencies, building packages, and setting up the workspace:
npm run setup:dev
  1. Option 1: Running the required infrastructure - view infrastructure component logs
npm run docker:dev
  1. Option 2: Running the required infrastructure - run the infrastructure components in background
npm run docker:dev -- -d
  1. Apply database migrations
npm run db:migrate:deploy
  1. To start developing, run one or more of the applications available under serve:[application] scripts of the package.json.
# running the server component
npm run serve:server

# running the client component
npm run serve:client

# running the data-service-generator component
npm run serve:dsg

# running the git-sync-manager component
npm run serve:git

# running the plugin-api component
npm run serve:plugins

Note In order to run the Amplication client properly, both the client and server need to be started by the npm run serve:[application] command, as well as an additional component for development on a specific component.

The development environment should now be set up. Additional information on the different application components can be found under packages/[application]/README.md file. Happy hacking! ๐Ÿ‘พ

Resources

  • Website overview of the product.
  • Docs for comprehensive documentation.
  • Blog for guides and technical comparisons.
  • Roadmap to see what features will be added in the future.
  • Discord for support and discussions with the community and the team.
  • GitHub for source code, project board, issues, and pull requests.
  • Twitter for the latest updates on the product and published blogs.
  • YouTube for guides and technical talks.

Contributing

Amplication is an open-source project. We are committed to a fully transparent development process and highly appreciate any contributions. Whether you are helping us fix bugs, proposing new features, improving our documentation or spreading the word - we would love to have you as a part of the Amplication community. Please refer to our contribution guidelines and code of conduct.

  • Bug Report: If you see an error message or encounter an issue while using Amplication, please create a bug report.

  • Feature Request: If you have an idea or if there is a capability that is missing and would make development easier and more robust, please submit a feature request.

  • Documentation Request: If you're reading the Amplication docs and feel like you're missing something, please submit a documentation request.

Not sure where to start? Join our discord and we will help you get started!

Contributors

License

A large part of this project is licensed under the Apache 2.0 license. The only exception are the components under the ee (enterprise edition) directory, these are licensed under the Amplication Enterprise Edition license.

blog-server's People

Contributors

amplication[bot] avatar arielweinberger avatar levivannoort avatar michaelsolati avatar mshidlov avatar mulygottlieb avatar overbit avatar shaharblanksela avatar timothy-amplication avatar tupe12334 avatar yuval-hazaz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

blog-server's Issues

Improve Cloud Run responsiveness

Change the cloud run deployment to be more responsive.
set the production cloud run:

  1. CPU to 4
  2. memory to 4g
  3. min instances to 1
  4. min instances to 5
  5. set the concurrency to 100
  6. set allocate always-on CPU
  7. change database to be db-custom-2-4096

admin-ui Dockerfile is not working properly

Intro:

My assignment is:

  1. Separate the main Dockerfile in the root directory into 2 separated Dockerfiles: 'admin-ui' & 'server' folders (The files are generated from the amplication-app.)
  2. Push the new images to 'GCR' and deploy them to 'CloudRun service' in the GCP cloud.

The bug:

As I started working on the separation and implementation into the GCP cloud, I encountered a problem with the Dockerfile for admin-ui from the browser 'Invalid Host header'. (locally it worked).

Why this is happening:

As searching through the internet I came across the solution to add inside the React webpack config file an
'disableHostCheck: true' env, but this approach is not good in terms of production.

The solution:

The solution is to change the Dockerfile configuration with 'Nginx' base image. as you can see here and it works ๐Ÿ’ฏ
I had to change the default container port (8080) in Cloudrun to make it work as you can see inside the 'main.tf' inside terraform.

As a DevOps Engineer - I want to revise the way blog graphics are uploaded to the static-assets s3 bucket

Currently a client is used to manually upload blog graphics to an s3 bucket which is served using a cdn in the form of aws cloudfront. This manual steps seems unnecessary, maybe we can host the static-assets in this repository aswell and have an github actions that uses terraform to upload the .png files and their directories to s3 automatically.

  • Enforce a naming convention on the directories - e.g., everything lowercase.
  • Possibly have subdirectories where content for each year is segregated.

Deployment Pipeline for Blog Server

Provide a way to deploy the blog-server to GCP infrastructure that include the following features...

  1. Infrastructure is automated using Terraform
  2. Two environments (Staging and Production)
  3. Merges to master/main branch invoke a Github action to deploy to production.
  4. Pull Requests have the ability to be deployed to a staging environment.

Implementation:

  1. Use Google Cloud Run to manage the blog-server container.
  2. Use Terraform to manage the infrastructure (GCP/Cloud-Run/PostgreSQL) and main tool to initiate installation/updates.
  3. Build and Push build-server container images to a Docker Registry with Google Container Registry
  4. Use Github Actions to push new infrastructure and versions of blog-server (build/push to Docker Registry) out to Cloud Run.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.