Lorem.space is an online API to generate categorized random image placeholders with custom sizes for your design layout.
What the hell is that?
Consider that you want to design a movie website or app, instead of downloading a bunch of movie covers, resizing them, and using them statically, you only set an URL (like https://api.lorem.space/image/movie?w=150&h=220) and each time a random movie cover will return.
To use API you can simply send a request to https://api.lorem.space/image/movie?w=150&h=220. This will return a random movie cover image in 150x220px dimensions. Some other categories like the game cover, music cover, store items, … are available and you can check https://lorem.space for more information.
How to run Lorem.space on your local machine
Lorem.space is an open-sourced program, you can download and run both frontend and backend apps on your local machine.
Run the server from binaries
- Download the latest binary for your operating system: https://github.com/manasky/lorem-server/releases
- Extract the downloaded file
- Open Terminal (for macOS or Linux) and CMD (for windows) and navigate to the extracted folder.
- Make sure the file is executable (grant permissions if needed)
- Run the server with these commands:
# For macOS or Linux:
./lorem-server -host "127.0.0.1:8080" - dir "~/Pictures"
# This will run the server on port 8080 and serves images from ~/Pictures directory
# For Windows:
lorem-server.exe -host "127.0.0.1:8080" -dir "C:\Users\USER\Pictures"
# This will run the server on port 8080 and serves images from `C:\Users\USER\Pictures` directory
Run the server from source code
Lorem.space server is written in Golang and you can access the source code from here: https://github.com/manasky/lorem-server
To run the server from codes, follow these steps:
- Install Go: https://golang.org/dl/
- Clone the repository:
git clone https://github.com/manasky/lorem-server.git - Go to the directory of source code, create a new directory named
imagesand put your images (.JPEG format) here. Each directory inimagesis considered as a category. for example, you can create a directory namedcarand put all cars’ images there. - Open Terminal (for macOS and Linux) or CMD (for Windows), then
cdto the directory of source codes and run:go run main.go - Now the server is running on
127.0.0.1:8080. Openhttp://127.0.0.1:8080/imagein your browser and a random image from theimagesdirectory is returned.
Options
Some arguments are available to run the server:
-
host: The IP and port of the server host -
dir: The address of the images directory -
cache: Enables file caching to prevent resizing the image in the same request -
cdn: CDN domain -
min-width: minimum supported width size in px -
max-width: maximum supported width size in px -
min-height: minimum supported height size in px -
max-height: maximum supported height size in px
Run the server with Docker
A built docker image of the Lorem server is available. You can pull the image by this command:
docker pull ghcr.io/manasky/lorem-server:latest
To run the docker image, you need to create a .env file containing the server configs:
HOST=0.0.0.0:8080
DIR=/app/images
MIN_WIDTH=20
Then in the directory of .env run this command in terminal:
docker run - env-file=./.env -p 8080:8090 -v ~/Pictures:/app/images ghcr.io/manasky/lorem-server:latest
-
— env-filesets the application environment variables path. Here.envfile exists in the current path. -
-p 8080:8080sets up a port forward. the application container will listen to the8080port (set in the .env file as HOST). This flag maps the container’s port8080to port8080on the host (here, your localhost). -
~/Pictures:/app/imagessets up a bind-mount volume that links the directory/app/imagesfrom inside the app container to the directory~/Pictureson the host machine (here, your system). The app image directory is set in the.envfile as/app/images, so here the~/Picturesis mounted to that.
After container running, the app will scan /app/images which is mounted to the directory ~/Pictures of your system & serves the HTTP server on 127.0.0.1:8080. Visit 127.0.0.1:8080/image for start.
Contribute
Feels free to contribute to the repository or file an issue for feedback or bug reporting in Github.
Top comments (0)